path是一种在XML文档中定位元素的语言。xpath语法比较简单,用法多,很强大的定位方法,我比较喜欢xpath。
绝对路径定位:
假如一个人,你不知道他的任何特征,直白来说,就是你不知道他的身份证号码、名字、手机号等信息,但是你知道他的位置,如xx省/ xx市/ xx区 /xx路/ xx号。你通过他的位置就可以准确找到他。从上往下查找元素的这种方法,在selenium中我们叫绝对路径定位。
简单举例:
find_element_by_xpath(‘html/body/div’)
标签名结合元素属性定位
find_element_by_xpath("//标签名[@id=‘属性值’]")
find_element_by_xpath("//标签名[@name=‘属性值’]")
find_element_by_xpath("//标签名[@class_name=‘属性值’]")
以上例举三种属性值,当然xpath不只局限于这三种,任意元素的属性值都是可以的,但要确保元素属性的唯一性。这就是xpath强大的地方,相对于单调的id、name、class_name定位,xpath结合元素属性定位元素的方法选择性更多。
有些人喜欢把标签名用星号“”代替,当然也是可以的。
find_element_by_xpath("//[@id=‘属性值’]")
层级和属性结合
假如你不知道某人的身份证号码、名字、手机号码等信息时无法取得联系,但是你知道某人爸爸的手机号码,此时你可以通过他爸爸来找到某人。也就是通过("/他爸爸[phone=‘手机号’]/本人") 找到某人。
换成术语就是当我们定位元素时,发现没有可以标识的唯一的元素的属性值时,那我们可以考虑用父亲标签结合属性来定位元素。例如:
find_element_by_xpath("//input[@id=‘属性值’]/div")
假如他爸爸也没有手机号码,此时你可以往上找他爷爷。也就是也就是通过("/他爷爷[phone=‘手机号’]/他爸爸/本人") 找到某人。
换成术语就是当我们定位元素时,发现父亲标签中没有可以标识的唯一的元素的属性值时,那我们可以考虑用爷爷标签结合属性来定位元素。例如:
find_element_by_xpath("//input[@id=‘属性值’]/div/span")
结合逻辑运算符
假如一个标签中有多个属性值时,且属性值不是唯一值时,此时我们可以用逻辑运算符连接多个属性来定位元素。我们用and来连接两个属性值,例如:
find_element_by_xpath("//input[@id=‘属性值’ and @name=‘属性值’]/div/span")
当然你可以用and连接更多的属性来加强定位,目标元素是能定到位。
有个简单快捷的方法,从浏览器直接复制xpath路径:
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】