Selenium - 元素定位(2) - XPATH进阶
Selenium - 元素定位
XPATH 定位进阶
元素示例
属性定位
# xpath 通过id属性定位
driver.find_element_by_xpath("//*[@id='kw']")
# xpath 通过name属性定位
driver.find_element_by_xpath("//*[@name='wd']")
# xpath 通过class属性定位
driver.find_element_by_xpath("//*[@class='s_ipt']")
其他属性定位
# xpath 通过其他属性定位
driver.find_element_by_xpath("//*[@autocomplete='off']")
组合定位
# xpath 通过标签与id属性的组合
driver.find_element_by_xpath("//input[@id='kw']")
# xpath 通过标签与class属性组合
driver.find_element_by_xpath("//input[@class='s_ipt']")
# xpath 通过标签与其它属性组合
driver.find_element_by_xpath("//input[@name='wd']")
# xpath 通过标签与其它属性组合
driver.find_element_by_xpath("//input[autocomplete='off']")
文本定位
# xpath 通过标签与页面字符
driver.find_element_by_xpath("//span[text()='页面文字']")
逻辑运算定位
# xpath 实现逻辑运算,同时匹配两个属性
driver.find_element_by_xpath("[//input[@id='kw' and @class='s_ipt']")
路径定位
# xpath 相对路径定位
driver.find_element_by_xpath("//form/span/inpu[@id='kw']")
# xpath 相对路径定位(通过父属性层级)
driver.find_element_by_xpath("//form[@id='form']/span[1]/input[2]")
# xpath 绝对路径定位
# 从根目录开始,以/开头,比较繁琐,一般不建议使用
driver.find_element_by_xpath("/html/body/div[1]/div[2]/div[5]/div[1]/div/form/span[1]/input")
模糊定位
# xpath 模糊定位
driver.find_element_by_xpath("//input[contains(@text(),'百度一下')]")
# xpath 匹配以什么开头
driver.find_element_by_xpath("//input[start-with(@class,'s_i')]")
# xpath 匹配以什么结束
driver.find_element_by_xpath("//input[end-with(@class,'ipt')]")
# xpath 正则匹配
driver.find_element_by_xpath("//*[match(@id,'kw')]")