Xpath定位

.  :当前节点(可要可不要)

//  :相对路径

*  :匹配所有的标签(此处也可以指定标签:input 等等)

@   :跟在QQ聊天中@某个人一样

一.路径

1.绝对路径:

2.相对路径(推荐):

二.常规属性(例:百度贴吧)

1.通过id定位:

driver.find_element_by_xpath(".//*[@id='wd1']").send_keys("selenium")

2.通过name定位

driver.find_element_by_xpath(".//*[@name='kw1']").send_keys("selenium")

3.通过class定位

driver.find_element_by_xpath(".//*[@class='search_ipt']").send_keys("selenium")

4.通过tag定位

(1)*号匹配所有标签

driver.find_element_by_xpath(".//*[@name='kw1']").send_keys("selenium")

(2)指定标签名称

driver.find_element_by_xpath(".//input[@name='kw1']").send_keys("selenium")

三.其它属性

1.其它属性:

driver.find_element_by_xpath(".//input[@autocomplete='off']").send_keys("selenium")

2.多个属性组合(逻辑运算):支持与(and)、或(or)、非(not)

(1) and:

driver.find_element_by_xpath(".//input[@id='wd1' and @name='kw1']").send_keys("selenium")

(1) or:

driver.find_element_by_xpath(".//input[@id='wd1' or @name='kw1']").send_keys("selenium")

四.文本属性

语法:

.//*[text()='文本内容']

例:

 driver.find_element_by_xpath(".//*[text()='网页']").click()

 五.层级关系

例:

1.相对路径层级关系:

driver.find_element_by_xpath("//form[@id='form']/span/input")

2.索引: 

例:

driver.find_element_by_xpath(".//select[@id='nr']/option[3]")

*跟python不同,不是从0开始,而是从1开始数

3.利用子元素查找父元素

driver.find_element_by_xpah(".//a[@id='blog_nav_sitehome']/../..")

六.模糊匹配(例:百度首页)

1.contains模糊匹配text(重点掌握):

driver.find_element_by_xpath("//a[contains(text(),'知')]").click()

2.模糊匹配某个属性:

driver.find_element_by_xpath("//input[contains(@class,'s_ip')]").send_keys("selenium")

3.模糊匹配xx开头:

driver.find_element_by_xpath("//input[starts-with(@class,'s_i')]").send_keys("selenium")

原文地址:https://www.cnblogs.com/linbao/p/7551605.html