因為用心,才會喜歡

粥雨

Selenium - 元素定位(2) - XPATH进阶

Selenium - 元素定位


XPATH 定位进阶

元素示例

image-20200623190307927


属性定位

# 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')]")

posted @ 2022-09-14 08:55  粥雨  阅读(158)  评论(0)    收藏  举报