首页 > 编程语言 > 详细

python应用(二、Xpath定位web元素)

时间:2020-12-22 10:31:27      阅读:23      评论:0      收藏:0      [点我收藏+]

2 Xpath定位web元素
参考:https://www.bilibili.com/medialist/play/ml825155967/BV1ty4y1C74b
2.1 web自动化定位元素的8种方法:
1)id
2)name
3)class
4)tagname
5)linktext
6)patiallinktext
7)xpath
8)cssselector

2.2 xpath定位的方法
2.2.1 xpath使用绝对位置定位
从根目录(/)开始,一级一级找到目标路径
1)查看html代码
技术分享图片
2)定位元素的html代码
技术分享图片
3)复制元素的xpath绝对路径
技术分享图片
获取到的xpath绝对路径:
/html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input
driver.find_element_by_xpath("/html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input")
缺点:页面代码修改后,绝对路径改变的几率很大,很可能需要重新修改测试代码。

2.2.2 xpath使用相对位置定位
从//开始,从选择的元素集去找目标元素
技术分享图片
相对路径://form/span/input
driver.find_element_by_xpath("//form/span/input").send_keys("自动化测试")
缺点:当有多个同名标签时,无法正确定位。

2.2.3 xpath使用索引定位
标签[第几个]
技术分享图片

input在form里面第一个span中://form/span[1]/input
driver.find_element_by_xpath("//form/span[1]/input").send_keys("自动化测试")
缺点:页面代码修改后,可能需要重新修改测试代码。

2.2.4 xpath使用属性值定位
技术分享图片

先找到//input,再用[]中的属性值约束input, //input[@id=‘kw‘]
1)使用id属性:
driver.find_element_by_xpath("//input[@id=‘kw‘]").send_keys("自动化测试")
2)使用name属性
driver.find_element_by_xpath("//input[@name=‘wd‘]").send_keys("自动化测试")
3)使用class属性
driver.find_element_by_xpath("//input[@class=‘s_ipt‘]").send_keys("自动化测试")
4)使用多个属性定位元素,多个属性之间用and或or连接
driver.find_element_by_xpath("//input[@id=‘kw‘ and @class=‘s_ipt‘]").send_keys("自动化测试")
注意:
1)确保标签值+属性值要唯一;
2)有些程序运行时id会改变。

2.2.5 xpath使用部分属性值定位(调用函数)
技术分享图片
函数:
1)contains(@属性名,属性值) # 模糊匹配属性值
autocomplete属性值包含‘ff‘:
driver.find_element_by_xpath("//input[contains(@autocomplete,‘ff‘)]").send_keys("自动化测试")

2)substring(@属性,n)=部分属性值 # n指的是开始截取的下标
substring属性值从第3个字符到最后的值 = ‘ipt‘:
driver.find_element_by_xpath("//input[substring(@class,3)=‘ipt‘]").send_keys("自动化测试")

3)starts-with(@属性名,属性值) # 属性值以什么开头
class属性值以‘s_‘开始:
driver.find_element_by_xpath("//input[starts-with(@class,‘s_‘)]").send_keys("自动化测试")

2.2.6 xpath使用文本定位
函数:text()
技术分享图片
点击“新闻”按钮
首先通过id定位div(//div[@id=‘s-top-left‘]),再通过[text()=‘新闻‘]定位a标签。
driver.find_element_by_xpath("//div[@id=‘s-top-left‘]/a[text()=‘新闻‘]").click()
技术分享图片
技术分享图片

python应用(二、Xpath定位web元素)

原文:https://www.cnblogs.com/bdzxh/p/14171192.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!