Robot Framework之XPath定位详解
zealot-u 2018-10-26 11:06:04 3952 已收藏 6
分类专栏: robot framework-xpath定位 文章标签: XPath定位 robot framework学习
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_37287015/article/details/83380837
收起
1、XPath精确定位方法:
a、如下图,要定位a元素
by.xpath=//*[@id='J-side-menu']/ul/li[2]/a,其中//*[@id='J-side-menu'],这段是指在根元素下查找id为J-side-menu的元素,此时相当于找到了aside元素。后面的路径必须按照源码的层级依次往下写。按照上图所示代码中,我们要找的a元素包含在li[2]标签内,而li标签又包含在ul标签内,所以中间必须写上ul和li两层,才到a这层。需注意元素的层级关系必须体现出来,比如不能写成//*[@id='J-side-menu']/a,这样肯定会报错的。
2、XPath模糊定位方法:
这段代码中的“退出”这个超链接,没有id元素,只有href,class和rel,不是很好定位。用xpath的几种模糊匹配模式来定位它,主要有如下四种方式:
a、用contains关键字,定位代码:by.xpath=//a[contains(@href,'logoff')],这句代码指寻找页面中href属性值包含有logoff这串字符的所有a元素,由于这个退出按钮的href属性里肯定会包含logoff,所以这种方式可行,也经常会用到。其中@后面可以跟该元素任意的属性名。
b、用starts-with,定位代码:by.xpath=//a[starts-with(@href,'/logoff')],这种方式一般用于知道超链接属性上显示的部分或者全部文本信息时,可以使用。这句的意思是寻找href属性以/logoff开头的a元素。其中@后面的href可以替换成元素的任意其他属性。
c、用Text关键字,定位代码:by.xpath=//*[text()='退出'],直接查找页面中所有的‘退出’二字,根本就不用知道它是一个a元素了。这种方法经常用于元素中包含纯文本的查找。
d、如果知道元素的文本内容,也可以这样定位:by.xpath=//a[contains(text(),'退出')]
3、 XPath动态属性定位
xpath关于网页中的动态属性的定位,例如,ASP.NET应用程序中动态生成id属性值,可以有以下3种方法:
a、starts-with 例子:input[starts-with(@id,'ctrl')] 解析:匹配以 ctrl 开始的属性值的input标签
b、ends-with 例子:input[ends-with(@id,'_userName')] 解析:匹配以 userName 结尾的属性值的input标签
c、contains() 例子:input[contains(@id,'userName')] 解析:匹配含有 userName 属性值的input标签
————————————————
版权声明:本文为CSDN博主「zealot-u」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37287015/article/details/83380837