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,斜杠表示子集

posted @ 2017-12-20 21:52  西瓜_皮  阅读(344)  评论(0编辑  收藏  举报