SeleniumLibrary4.5.0 关键字详解(一)

2023-11-11


SeleniumLibrary4.5.0 关键字详解(一)
库版本:4.5.0
库范围:全局
命名参数:受支持

简介

SeleniumLibrary是Robot Framework的Web测试库。

本文档说明了如何使用SeleniumLibrary提供的关键字。 有关安装,支持等信息,请参见 python3.9.0 + robotframework + selenium3 实例体验。

有关robotframework框架的更多信息,请参见 https://blog.csdn.net/mask5726/category_10537277.html。

SeleniumLibrary在内部使用Selenium WebDriver模块来控制Web浏览器。 有关常规Selenium的更多信息,请参见Selenium。

内容列表

1、元素定位
2、浏览器和窗口
3、超时,等待和延迟
4、运行故障功能
5、布尔参数
6、webDriver事件
7、线程支持
8、插件
9、引入
11、关键字

定位元素

SeleniumLibrary中所有需要与网页上的元素进行交互的关键字都带有一个通常称为locator的参数,该参数指定如何查找该元素。通常,定位器是使用下面描述的定位器语法以字符串形式给出的,但是也可以使用WebElements。

定位器语法

SeleniumLibrary支持基于不同策略(例如元素ID,XPath表达式或CSS选择器)查找元素。可以使用前缀明确指定策略,也可以隐式指定策略。

默认定位器策略

默认情况下,定位器被认为使用关键字特定的默认定位器策略。所有关键字都支持基于id和name属性的查找元素,但是某些关键字支持在上下文中有意义的其他属性或其他值。例如,单击链接支持href属性,链接文本以及常规ID和名称的添加。

例子:

Click Element example #根据ID或名称进行匹配.
Click Link example # 根据链接文本和href进行匹配.
Click Button example # 根据ID,名称或值进行匹配.
如果定位器意外地以被识别为显式定位器策略或隐式XPath策略的前缀开头,则可以使用显式默认前缀来启用默认策略。

例子:

Click Element name:foo # 查找名称为foo的元素.
Click Element default:name:foo # 使用默认策略,其值为name:foo.
Click Element //foo # 使用XPath // foo查找元素.
Click Element default: //foo # 使用默认策略使用值// foo.
使用语法strategy:value或strategy = value使用前缀指定显式定位器策略。首选前一种语法,因为后者与Robot Framework的命名参数语法相同,并且可能导致问题。分隔符周围的空格将被忽略,因此id:foo,id:foo和id:foo都是等效的。

下表列出了默认支持的定位器策略。除它们之外,还可以注册自定义定位器。

基于示例的策略匹配

Strategy Match based on Example
id Element id. id:example
name name attribute. name:example
identifier Either id or name. identifier:example
class Element class. class:example
tag Tag name. tag:div
xpath XPath expression. xpath://div[@id=“example”]
css CSS selector. css:div#example
dom DOM expression. dom:document.images[5]
link Exact text a link has. link:The example
partial link Partial link text. partial link:he ex
sizzle Sizzle selector deprecated. sizzle:div.example
jquery jQuery expression. jquery:div.example
default Keyword specific default behavior. default:example

有关默认策略如何工作的更多信息,请参见下面的默认定位器策略部分。仅当定位器值本身偶然与某些显式策略匹配时,才需要使用显式默认前缀。

不同的定位器策略有不同的优缺点。建议尽可能使用id(显式地像id:foo一样)或使用默认的定位器策略(像foo一样),因为它的语法很简单,并且对于浏览器来说,通过id定位元素很快。如果元素没有ID或ID不稳定,则需要使用其他解决方案。如果元素具有唯一的标签名称或类,则使用标签,类或css策略(例如tag:h1,class:example或css:h1.example)通常是一个简单的解决方案。在更复杂的情况下,使用XPath表达式通常是最好的方法。它们非常强大,但缺点是它们也可能变得复杂。

例子:

Click Element id:foo # Element with id ‘foo’.
Click Element css:div#foo h1 # h1 element under div with id ‘foo’.
Click Element xpath: //div[@id=“foo”]//h1 # Same as the above using XPath, not CSS.
Click Element xpath: //*[contains(text(), “example”)] # Element containing text ‘example’.
SeleniumLibrary 3.0和更高版本仅支持strategy:value语法。
使用sizzle策略或其别名jquery要求被测系统包含jQuery库。
在SeleniumLibrary 3.0之前,与表相关的关键字仅支持xpath,css和sizzle / jquery策略。
隐式XPath策略
如果定位符以//或(//开头,则该定位符被视为XPath表达式。换句话说,使用// div等效于使用显式xpath:// div。

例子:

Click Element //div[@id=“foo”]//h1
Click Element (//div)[2]

SeleniumLibrary 3.0中新增了对(//前缀的支持。

使用WebElements

除了将定位符指定为字符串之外,还可以使用Selenium的WebElement对象。这要求首先获取一个WebElement,例如,通过使用Get WebElement关键字。

${elem} = Get WebElement id:example
Click Element ${elem}
自定义定位器

如果所需的查找比通过默认定位器提供的查找更为复杂,则可以创建自定义查找策略。使用自定义定位器是一个分为两部分的过程。首先,创建一个关键字,该关键字返回应执行的WebElement:

Custom Locator Strategy [Arguments] ${browser} ${locator} ${tag} ${constraints}
e l e m e n t = E x e c u t e J a v a s c r i p t r e t u r n w i n d o w . d o c u m e n t . g e t E l e m e n t B y I d ( ′ {element}= Execute Javascript return window.document.getElementById(' element=ExecuteJavascriptreturnwindow.document.getElementById({locator}’);
[Return] ${element}

此关键字是对ID定位器基本功能的重新实现,其中$ {browser}是对WebDriver实例的引用,而$ {locator}是定位器策略的名称。要使用此定位器,必须首先使用“添加位置策略”关键字进行注册:

Add Location Strategy    custom    Custom Locator Strategy

“添加位置策略”的第一个参数指定策略的名称,并且该名称必须唯一。注册该策略后,其用法与其他定位符相同:

Click Element    custom:example

有关更多详细信息,请参见添加位置策略关键字。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SeleniumLibrary4.5.0 关键字详解(一) 的相关文章

  • 软件测试开发/全日制/测试管理丨Docker容器技术

    Docker 是一种轻量级的容器技术 通过将应用程序及其所有依赖项封装到一个可移植的容器中 实现了应用程序的便携性 可部署性和可伸缩性 下面是关于 Docker 容器技术的主要概念和优势 主要概念 容器 Container 容器是一个轻量级
  • “性能压测揭密:关键指标分析!“

    在进行全链路压测和性能测试时 需要关注多个关键性能指标 KPIs 来评估系统的性能表现 以下是一些常见的性能测试指标 1 吞吐量 Throughput 系统在单位时间内能够处理的请求数量或事务数量 通常以每秒请求数 RPS TPS 来衡量
  • Python 如何安装Selenium(推荐)

    一 Selenium的定义 Selenium 是一个 Web的自动化测试工具 最初是为网站 自动化测试而开发的 Selenium 可以直接调用浏览器 它支持所有主流的浏览器 包括PhantomJS 这些无界面的浏览器 可以接收指令 让浏览器
  • 【性能测试入门】:压力测试概念!

    压力测试可以验证软件应用程序的稳定性和可靠性 压力测试的目标是评估软件在极端负载条件下的鲁棒性和错误处理能力 并确保软件在紧急情况下不会崩溃 它甚至可以进行超出软件正常工作条件的测试 并评估软件在极端条件下的工作方式 在软件工程中 压力测试
  • “揭秘性能测试工具:优化软件性能的关键秘籍“

    性能测试工具的设计宗旨是为了模拟用户对软件应用程序或系统的各种操作 旨在评估关键的性能指标 包括响应时间 吞吐量 并发能力和资源利用率 通过这些工具模拟的多用户环境 我们能够产生与实际工作负载相似的条件 并监测系统在这种情况下的性能表现 一
  • 最佳利用Mock提升测试效率的7个技巧!

    再聊这个问题之前 我们先了解一下公司技术架构的演变过程 这样我们才能真正体会到我们为什么要使用 Mock功能 单体应用 在早期 大部分公司的应用技术栈主要可以分为两大类 LAMP Linux Apache MySQL PHP 和 MVC S
  • Jmeter 压测-性能调优5大注意

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 2k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Python自动化操作:简单、有趣、高效!解放你的工作流程!

    今天跟大家分享一套自动化操作流程解决方案 基于 Python语言 涉及 pyautogui pyperclip pythoncom win32com 依赖包 安装命令为 pip install pyautogui pip install p
  • 测试开发必知:有Tomcat,为什么还要Nginx?

    只用Tomcat 不用Nginx搭建Web服务 行不行 我曾经提出的愚蠢问题 今天详细给自己解释下 为什么必须用Nginx 不用Nginx 只用Tomcat的Http请求流程 浏览器处理一个Http请求时 会首先通过DNS服务器找到域名关联
  • 微信小程序的自动化测试框架

    微信发布了小程序的自动化测试框架Minium 提供了多种运行验证方式 其特点 支持一套脚本 iOS Android 模拟器 三端运行 提供丰富的页面跳转方式 看不到也能去得到 可以获取和设置小程序页面数据 让测试不止点点点 可以直接触发小程
  • 基于Loadrunner的性能分析及调优经验分享

    公司某个系统的微信端计划将开放给几百上千的人员登录查询 并且登录账号为同一账号多人使用 后台服务能够支撑起多用户的并发操作以及成百上千人登录微信端对生产数据库或者登录查询的性能效率高成为交付可靠生产环境的必要条件 因此 项目组决定提交测试
  • Jmeter 性能-阶梯负载最终请求数

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 软件测试中的白盒测试,这些技巧你知道吗?

    对于很多刚开始学习软件测试的小伙伴来说 如果能尽早将黑盒 白盒测试弄明白 掌握两种测试的结论和基本原理 将对自己后期的学习有较好的帮助 今天 我们就来聊聊黑盒 白盒测试的相关话题 1 黑盒测试的方法和小结 最常见黑盒测试方法包括 边界值 等
  • 月薪2W的软件测试工程师,到底是做什么的?

    在生活中 我们常常会遇到以下几种窘迫时刻 准备骑共享单车出行 却发现扫码开锁半天 车子都没有反应 手机导航打车 却发现地图定位偏差很大 司机总是跑错地方 买个水 却遭遇自动售货机吐币 或者不找零钱 好不容易休息打个游戏 却一直出现卡顿 闪退
  • 2024拒绝行业内卷!八年软件测试20K*16薪行业心得 想入行必看

    目前工作做软件测试工作8年 属于高级测试员那个级别吧 现在看到各行各业的人都在转行学习软件测试 想给大家一些学习建议和忠告 很多粉丝都跟我说今年行情很差 找不到工资 真的找不到工作了吗 我们常在网上看到的 程序员饱和 程序员过剩 其实一般是
  • 一文让你了解UI自动化测试

    测试都起什么作用 是项目的保险 但不是项目的救命草 测试无实际产出 但作用远大于实际产出 测试是从项目维度保证质量 而不是测试阶段 UI自动化 下面简称自动化 基于UI进行自动功能测试 以Web端作为例子 一般的UI功能自动化都是基于HTM
  • UI自动化测试之Jenkins配置

    背景 团队下半年的目标之一是实现自动化测试 这里要吐槽一下 之前开发的测试平台了 最初的目的是用来做接口自动化测试和性能测试 但由于各种原因 接口自动化测试那部分功能整个废弃掉了 其中和易用性有很大关系 另外 也和我们公司的接口业务也有关
  • 外包干了3个月,技术退步明显。。。。。

    先说一下自己的情况 本科生 20年通过校招进入广州某软件公司 干了接近3年的 功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了3年的功能测试 已经让我变得不思进取 谈了2年的女朋
  • 一文从0到1手把手教学UI自动化测试之数据驱动!

    在UI的自动化测试中 我们需要把测试使用到的数据分离到文件中 如果单纯的写在我们的测试模块里面 不是一个好的设计 所以不管是什么类型的自动化测试 都是需要把数据分离出来的 当然分离到具体的文件里面 文件的形式其实有很多的 这里主要说明JSO
  • 用Python实现高效数据记录!Web自动化技术助你告别重复劳动!

    自动化关键数据记录 简介 关键数据记录是 Web 自动化测试中的关键部分 它们提供了关于系统行为和执行过程的详细信息 有助于验证用例的正确性 排查问题和确保应用程序的质量 行为日志 行为日志是一种用于记录系统或应用程序的操作和事件的技术 它

随机推荐

  • SQL Server数据的Aes加密存入与解密取出

    最近在做winfrom的毕设 边做边学 由于这个东西折磨了我一天 所以写一篇学习心得记录一下这天的收获 顺便吐槽一下这个气人代码 由于本人是个菜鸡所以如果有缺陷或不足的地方欢迎大佬指出 另 项目环境为 VS2022 SQL Server 2
  • python绘制频谱图_使用python进行傅里叶FFT-频谱分析详细教程

    目录 一 一些关键概念的引入 1 离散傅里叶变换 DFT 2 快速傅里叶变换 FFT 3 采样频率以及采样定理 4 如何理解采样定理 二 使用scipy包实现快速傅里叶变换 1 产生原始信号 原始信号是三个正弦波的叠加 2 快速傅里叶变换
  • 关于plt.imshow()显示彩图问题

    https blog csdn net cnnmena article details 79613531 转载于 https www cnblogs com weststar p 11539800 html
  • fabric.js 怎么将 Group 中的元素包装在一个容器元素中,然后绑定事件到group元素的某个子元素上...

    你可以这样做 在 Group 中添加一个容器元素 比如一个矩形或圆形 将 Group 中的其他元素添加到容器元素中 使用 Group 对象的 on 方法绑定事件到容器元素上 例如 创建一个 Group var group new fabri
  • 操作系统:主存储器空间的分配和回收

    主存储器空间的分配和回收 预习报告 一 实验内容 主存储器空间的分配和回收 二 实验目的 一个好的计算机系统不仅要有一个足够容量的 存取速度高的 稳定可靠的主存储器 而且要能合理地分配和使用这些存储空间 当用户提出申请存储器空间时 存储管理
  • 【千律】C++基础:析构函数

    报错strcpy不安全 解决方法 项目 gt 属性 gt C C gt 预处理器 gt 预处理器定义 添加 CRT SECURE NO DEPRECATE CRT NONSTDC NO DEPRECATE include
  • 机器学习(第一章)

    第一章 绪论 1 1 引言 根据训练数据是否有标记可将训练任务分为 有监督学习 supervised learning 和 无监督学习 unsupervised learning 前者有回归和分类 后者有聚类 泛化能力 模型适用于新样本的能
  • 创建节点和用法

    创建节点 appendchild 的用法 效果如下 insertBefore 的用法 效果 removeChild 的用法 效果 replaceChild 的用法 效果 search 方法用于查询指定的字符串的初始位置 并获取它的下标 se
  • 研究生必备:从0到1使用Zotero

    一 初识zotero 文献导入与引用 1 安装地址 https www zotero org 点击下一步一直安装 编辑 首选项 高级 选择语言为中文 2 文献导入 1 在我的文库下面可以新建文件夹 在中间标题部分可以拖进去本地下载的PDF
  • STL——(8)set/ multiset 容器和pair对组

    set multiset 容器和pair对组 1 set基本概念 2 set构造和赋值 3 set大小和交换 4 set插入和删除 5 set查找和统计 6 set和multiset区别 7 pair对组创建 8 set容器排序 1 set
  • 学编程太枯燥太难怎么办?

    大家好 我是老三 和大家分享一些我学编程的经历 那年二十 头发浓密如野狗 夏日炎炎 枯坐机房如木头 一根指头 颤颤巍巍如老叟 敲下了第一行 Hello World 开启了编程学习生涯 刚开始 参加的是学校的一个夏季编程训练营 起初是有学长学
  • 2023年以太坊测试网水龙头整理(包含Goerli和Sepolia)

    2023年以太坊测试网水龙头整理 包含Goerli和Sepolia 区块漫步 2023年以太坊测试网水龙头整理 包含Goerli和Sepolia 空投交互By blockwander 去中心化应用在以太坊主网上线之前 都会在以太坊测试网上先
  • 互联网摸鱼日报(2022-09-16)

    互联网摸鱼日报 2022 09 16 InfoQ 热门话题 1 从某保险机构数据库全面国产化 看如何跨越金融数据价值鸿沟 2 Flink 从实时计算到流式数仓 下一步去往哪里 3 CEO们突然介入到 IT建设 企业纷纷迁出VM虚拟机基础设施
  • 【git学习】本地关联远程仓库

    目录 一 本地仓库关联远程仓库 新建仓库 二 拉取远程分支到本地 已有远程仓库 一 本地仓库关联远程仓库 新建仓库 本地新建工程 然后关联远程git仓库并向远程仓库提交代码 1 本地新建工程 这里我使用idea创建 2 在远程仓库新建仓库
  • SIP相关的RFC文档索引

    http www packetizer com ipmc sip standards html
  • Mysql服务器安装步骤

    安装包 windows10 MySQL Server 5 7 mysql installer community 5 7 26 0 msi 安装步骤 双击运行下载好的mysql installer community 5 7 26 0 ms
  • 01--背包问题以及构造最优解

    目录 1 01 背包问题 2 构造最优解 3 动态规划法求解01 背包问题的局限性 1 01 背包问题 01 背包问题 就是有n个物品 它们有各自的体积和价值 现有给定容量的背包 如何让背包里装入的物品具有最大的价值总和 一个物品只有装与不
  • 调试flex程序

    如果程序编译时报错 需要修改程序 有时还要进行调试 在Flash中 最常用的调试方式是使用trace函数 将想要检测的对象或函数运行结果在输出面板中打印出来 在Flex中 同样可以使用trace函数来进行调试 修改上面的代码
  • 自动代码生成 - 使用Seq2Seq模型在代码生成数据集上进行自动代码生成任务。

    1 引言 自动代码生成是一个具有挑战性和实用性的任务 它可以帮助开发人员自动化生成代码 提高开发效率 在这篇博客中 我们将介绍如何使用Seq2Seq模型进行自动代码生成任务 并在代码生成数据集上进行实验 我们将使用Python作为代码生成语
  • SeleniumLibrary4.5.0 关键字详解(一)

    SeleniumLibrary4 5 0 关键字详解 一 库版本 4 5 0 库范围 全局 命名参数 受支持 简介 SeleniumLibrary是Robot Framework的Web测试库 本文档说明了如何使用SeleniumLibra