selenium - xpath - 定位
前言:
XPath 定位方法更加灵活,定位更加全面。
XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。
看这里介绍:w3school
首先来看一下xpath常用的语法:
一、xpath:通过常用属性定位,如:id、name、class
# 1.通过id定位
driver.find_element_by_xpath("//*[@id='username']").send_keys("159258")
# 2.通过name定位
driver.find_element_by_xpath("//*[@name='username']").send_keys("159159")
# 3.通过class定位
driver.find_element_by_xpath("//*[@class='ml-46']").send_keys("159159")
二、通过其他属性、多属性组合
# 4.通过多属性组合
driver.find_element_by_xpath("//input[@class='ml-46' and @name='username']").send_keys("545")
# 5.通过其他属性
driver.find_element_by_xpath("//input[@placeholder='手机号']").send_keys("123")
三、通过文本属性
- 如图:定位加入购物车这个按钮
# 6.通过文本属性
driver.find_element_by_xpath("//a[text()='加入购物车']").click()
四、通过层级关系、模糊匹配
# 7.通过层级关系
driver.find_element_by_xpath("//form[@id='ECS_FORMBUY']/ul[3]/li[2]/a").click()
# 8.通过模糊匹配
driver.find_element_by_xpath("//a[contains(text(),'加入购物车')]").click()
# 9.模糊匹配xx开头的
driver.find_element_by_xpath("//a[starts-with(@class,'btn')]").click()
五、通过层级关系-索引
# 10.通过层级关系-索引
driver.find_element_by_xpath("//*[@id='ad_type']/option[1]").click()
Xpath定位实例
‘登录’按钮,没有 id,name 这些属性,但是有文本‘登录’。所以定位方法:
1.Xpath 语法,通过 text 文本定位
2.通过父级元素定位,父级元素有 id 属性
通过text 文本定位:
driver.find_element_by_xpath("//a[text()='登录']").click()
a--表示a 标签
通过 父级元素定位:
driver.find_element_by_xpath('//*[@id="loginForm"]/a').click()
看上面截图,父级元素的 id 是 loginForm,斜杠表示子集