Robot Framework与Web界面自动化测试学习笔记:利用xpath定位元素
在rf中,利用selinum2的关键字进行用例编写时,很多关键字的参数是html元素的定位标识。
最简单的方式,是通过id 或name来描述元素定位信息,如
click button id=loginBtn //表示点击id值为loginBtn的按钮元素
利用id和name来定位元素,前提是要求元素设置了id或name属性,并且是唯一的。但实际的web页面中,很多元素是没有id或name的,这时可通过html元素在页面中的路径来判断。
我们拿找人这个来比喻,利用id就好比通过身份证号(因为身份证号是唯一的)来找人。利用路径就好比用地址来找人,比如某个人的地址是 xx省xx市xx区xx路xx号。
Xpath 就是这个意思,它通过提供元素在html文件中的层级位置来定位元素。
通过xpath定位元素,又有两种方式,一是绝对定位,也就是说从根元素html节点开始。还有一种是相对定位,就是从已知的某个上层节点往下定位。相对定位,就好比,我已经定在xx省下的xx市找人,这样我就不用关心省和市了。
下面我们一一来解释。
(一)绝对定位
例子如:
click element xpath=/html/body/div[1]/div[1]/form[1]/label[4]
元素后面跟 [数字] 的含义是:因为一个节点下可能有多个相同标签的元素,这里的[]中的数字表示取第几个元素(1代表第1个元素)。比如第一个div[1]表示取body下的第一个div元素,而最后的label[4]表示它所在的form元素下有多个label元素,这里取第4个label元素。如果不加[]和序号,表示是第一个元素。
(二) 相对定位
绝对定位的方式比较啰嗦和麻烦,而且一旦元素的层级关系发生变化(这是经常发生的事),其定位描述也跟着变,这会更用例编写带来巨大的维护工作量。
在实际应用中,一般采用相对定位的方式,比如先定位到某个上层节点,在按照xptah的方式找它的下层节点。比如上面的例子,如果form[1]可以唯一定位。则就可以这样描述xpth。
xpath=//form[@id='f204']/label[4]
最前面的//表示采用相对定位。 form后面的[]内的 @id='f204' 表示通过id 属性值来确定form标签。后面的label[4]是通过序号来确定form内的label标签。
xpath=//form[@id='f204']/*/input[@name=xx]
在xptah表达式中*表示任意元素。上面的意思,表示定位该form下任意第三层节点(孙子节点)下的name值为xx的标签为input的元素。
说明:xptah有详细的规范,上面的只是最简单的应用方式,通过xptah提供的各种描述方式,非常强大,可以满足绝大部分定位的需求。
Robot Framework与Web界面自动化测试学习笔记:利用xpath定位元素的更多相关文章
- Robot Framework与Web界面自动化测试学习笔记:简单例子
假设环境已经搭建好了.这里用RIDE( Robot Framework Test Data Editor)工具来编写用例.下面我们对Robot Framework简称rf. 我们先考虑下一个最基本的登 ...
- Robot Framework与Web界面自动化测试学习笔记:如何判断单选框的选中状态
单选按钮是个常见的html元素,在网页中往往提供一组单选按钮来做选项. 这样在自动化测试用例中需要判断当前选中的按钮是否与预期的一直. 可以这样来操作: ${value} Get Element ...
- Robot Framework与Web界面自动化测试学习笔记:定位到新窗口
在页面操作中,有时会需要打开新的窗口(新的网页不在当前窗口显示,而是在新的tab页显示), 比如利用 window.open("newurl") 或者 <a href=& ...
- Robot Framework与Web界面自动化测试:简单例子
假设环境已经搭建好了.这里用RIDE( Robot Framework Test Data Editor)工具来编写用例.下面我们对Robot Framework简称rf. 我们先考虑下一个最基本的登 ...
- Selenium3自动化测试【18】XPath定位元素(2)
层级与属性结合定位 如果被定为的元素,无法通过自身属性来唯一标识自己,此时可以考虑借助上级元素来定位自己.举生活中的例子,一个婴儿刚出生,还没有姓名与身份证号,此时给婴儿进行检查时往往会标注为&quo ...
- Robot Framework进行web ui自动化测试,浏览器配置说明
转载请注明出处,谢谢: chrome浏览器: 1.从如下地址下载与本地浏览器版本号一致的chromedriver.exe驱动文件: http://chromedriver.storage.google ...
- 【学习笔记】XPath定位总结
XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言. 原理:基于html的文档目录结构进行定位元素. 以html代码为例讲解各种定位方法: ...
- qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)
原博主博客地址:http://blog.csdn.net/qq21497936本文章博客地址:http://blog.csdn.net/qq21497936/article/details/78516 ...
- Scrapy:学习笔记(1)——XPath
Scrapy:学习笔记(1)——XPath 1.快速开始 XPath是一种可以快速在HTML文档中选择并抽取元素.属性和文本的方法. 在Chrome,打开开发者工具,可以使用$x工具函数来使用XPat ...
随机推荐
- iOS开发常识
一.NSString 创建字符串. NSString *astring = @"This is a String!"; 创建空字符串,给予赋值. NSString *astri ...
- 加特殊符号星号斜杠反斜杠/* \ */ !important等让css实现兼容各个浏览器的技巧的代码
在编写css样式表的时候常常会碰到一写浏览器兼容的问题,象是不同内核的浏览器显示就不一定相同,不同版本的的浏览器也会产生上下兼容的问题,如何解决这些问题成了我们苦恼的问题,如果你对css hac ...
- Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)下
前面说了一些在OpenCV在VS2013下的配置的过程,下面说一下其中的个别的知识点,了解一下这样配置的一点点更细节的过程.其实配置项目属性的时候,有两种方式: 一.通过项目属性管理器配置项目属性表 ...
- Yii2归档安装法
打开dos 操作命令 1.先把init.bat 拖到dos命令窗口 打开 (如果拖过去没打开 可以回车Enter一下) 这里需要注意一下 下图红圈中是两种环境 0->开发环境 1-&g ...
- ASP.NET 定时通知
ASP.NET 定时通知 using System; using System.Collections.Generic; using System.Linq; using System.Web; us ...
- jquery-1.10.2.min.js之Multiple markers at this line
1.windows-preferences 输入validation 2. 点击进入 3. 将JavaScript validator for js files 的两个对勾去了就OK! 4 ...
- 【IPC进程间通信之四】数据复制消息WM_COPYDATA
IPC进程间通信+数据复制消息WM_COPYDATA IPC(Inter-Process Communication,进程间通信). 数据复制消息WM_C ...
- large-scale analysis of malware downloaders
http://www.christian-rossow.de/publications/downloaders-dimva12.pdf
- 详细解析BluetoothAdapter的详细api
(1)开关状态值 (2)扫描状态值 (3)蓝牙操作接收的广播 (4)蓝牙操作请求的广播 (5)附加域 (6)错误码 (1)获取蓝牙适配器 (2)获取state状态方法 (3)蓝牙是否可用 (4)打开蓝 ...
- python中的class
尽管Python在Function Programming中有着其他语言难以企及的的优势,但是我们也不要忘了Python也是一门OO语言哦.因此我们关注Python在FP上的优势的同时,还得了解一下P ...