selenium - xpath - 定位

前言:
XPath 定位方法更加灵活,定位更加全面。
XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。
看这里介绍:w3school
首先来看一下xpath常用的语法:

一、xpath:通过常用属性定位,如:id、name、class

# 1.通过id定位
driver.find_element_by_xpath("//*[@id='username']").send_keys("159258")

# 2.通过name定位
driver.find_element_by_xpath("//*[@name='username']").send_keys("159159")

# 3.通过class定位
driver.find_element_by_xpath("//*[@class='ml-46']").send_keys("159159")


二、通过其他属性、多属性组合

# 4.通过多属性组合
driver.find_element_by_xpath("//input[@class='ml-46' and @name='username']").send_keys("545")

# 5.通过其他属性
driver.find_element_by_xpath("//input[@placeholder='手机号']").send_keys("123")

三、通过文本属性

  • 如图:定位加入购物车这个按钮
# 6.通过文本属性
driver.find_element_by_xpath("//a[text()='加入购物车']").click()

四、通过层级关系、模糊匹配

# 7.通过层级关系
driver.find_element_by_xpath("//form[@id='ECS_FORMBUY']/ul[3]/li[2]/a").click()

# 8.通过模糊匹配
driver.find_element_by_xpath("//a[contains(text(),'加入购物车')]").click()

# 9.模糊匹配xx开头的
driver.find_element_by_xpath("//a[starts-with(@class,'btn')]").click()

五、通过层级关系-索引


# 10.通过层级关系-索引
driver.find_element_by_xpath("//*[@id='ad_type']/option[1]").click()



Xpath定位实例

‘登录’按钮,没有 id,name 这些属性,但是有文本‘登录’。所以定位方法:
1.Xpath 语法,通过 text 文本定位
2.通过父级元素定位,父级元素有 id 属性

通过text 文本定位:

driver.find_element_by_xpath("//a[text()='登录']").click()

a--表示a 标签

通过 父级元素定位:

driver.find_element_by_xpath('//*[@id="loginForm"]/a').click()

看上面截图,父级元素的 id 是 loginForm,斜杠表示子集

posted @   西瓜_皮  阅读(347)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示