因為用心,才會喜歡

粥雨

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 @   粥雨  阅读(139)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示