码迷,mamicode.com
首页 > 其他好文 > 详细

XPATH定位方法总结

时间:2017-12-15 22:46:09      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:双引号   2.4   form   html   path   gallery   设计   [1]   orm   

XPath定位详解

  一般选择xpath定位是因为无论用idnameclass等,都不能唯一定位的时候。

1.2.1 绝对路径法

  (1)就是从HTML文件最外面一层tag一直找到所要的元素的tag为止;(2)如果某一层有多个同名的tag,就用数组标注的方式;(3)以单斜杠、双斜杠开头都可以。

driver.find_element_by_xpath(‘/html/body/div/div[2]/form/div/div[2]/div/input[3]’).click()

driver.find_element_by_xpath(‘//html/body/div/div[2]/form/div/div[2]/div/input[3]’).click()

1.2.2 相对路径法

  使用绝对路径太长。可以选择离当前元素最近的一个层级,且那个层级可以使用非path法唯一定位。比如,离当前元素最近的一层元素有id

  driver.find_element_by_xpath(‘//html/body/div[2]/table/tbody/tr/td[1]/div[1]/div[5]/div/div/table/tbody/tr[3]/td[2]/a’).click()

  driver.find_element_by_xpath(“//div[@id=’gallery_sl’]/div/table/tbody/tr[3]/td[2]/a”).click()

  相对路径的第一个元素定位方法:(1)最外一层双引号;(2)第一个元素的:tag名称[@元素属性=’元素值’];(3)不论是元素的id,名称还是什么属性,都用@引用。

1.2.3 类似partical_link_text

  注意最前面用双斜杠,不仅可以用于链接式的文本,也能用于其他含文本的元素。

  driver.find_element_by_css_selector("//a[contains(text(),‘平面设计‘)]").click()

 

1.2.4 XPATH多次最短路径定位

 

driver.find_element_by_xpath(“//tr[@id=’login_btn’]//td[text()=’登录’]”).click()

 

driver.find_element_by_xpath(“/*/tr[@id=’login_btn’]//td[text()=’登录’]”).click()

 

中间用双斜线或者双斜线中间加一个星号来表示中间有若干个tag

 

1.2.5 用元素的text属性定位的两种表达式

 

driver.find_element_by_xpath(“/*/tr[@id=’login_btn’]//td[text()=’登录’]”).click()

 

driver.find_element_by_xpath(/*/tr[@id=login_btn]//td[contains(text(),登录)]).click()

 

两者的区别:第一种元素的属性必须为“登录”只能相等,而第二种包含字符就行,如“登录按钮”

 

XPATH定位方法总结

标签:双引号   2.4   form   html   path   gallery   设计   [1]   orm   

原文地址:http://www.cnblogs.com/yahutiaotiao/p/8044838.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!