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")