XPath元素定位笔记

XPath定位

老师讲XPath更适合用于移动端的定位,如果是WEB端还是建议用CSS定位.

学完css定位之后发现css确实更简洁和好用.

建议学完xpath再学css,不然理解起来有点点复杂.

在这里插入图片描述
在这里插入图片描述

最近遇到的项目是VUE前端,全页面几乎没有ID和CLass,只能硬着头皮用XPaht定位.

写这篇博文是为了做XPath笔记

路径定位就不讲了,太长也太lowl.

标签加属性定位

# //是相对路径--后面跟标签名
//标签名
# /是绝对路径
/

# 路径后面要用[]
/[@属性="属性值"]
//*[@属性="属性值"]
# @是属性
# =后面是属性值

# 例如下面这个,意思是定位 相对路径 input标签 下的 placeholder属性 , 属性值为 ‘请输入用户名’  的元素.
# //标签名/[@属性名=“属性值”]
用户输入框 = (By.XPATH, '//input[@placeholder="请输入用户名"]')

XPath延伸

  • 根据文本内容定位,适用于p标签和a标签

    •       //*[text()='文本内容']
      
  • 根据属性中含有的属性值来定位
    例如:这个列表中的文本无法用text()完全匹配到,点击后发现会自动出现前后空格,可以用包含方法定位

    //ul/li[contains(text(),"大唐用电单位01")]
    

    选中匹配到的第二个元素

    (//span[text()=‘匹配’])[2]
    

    在这里插入图片描述

    •       //*[contains(@属性名,'包含的属性值xxx')]
      
  • 根据属性以xx开头的元素来定位

    •       //*[starts-with(@属性名,'以xxx开头的属性值')]
      

高阶用法笔记

如何使用xpath进行页面元素的定位?有几种xpath定位方式?

xpath常用方法
	常用方法:(开头的*表示从根目录开始查找,可写可不写)
	可以做布尔逻辑判断,例如
		/button[@value=’submit’ or @name=’tijiao’]
	*//*[text()="销售出库"]  
		# 根据可见文本定位
	*//*[@id='username']   
		# 根据id定位
	*//*[@class='form-control']   
		# 根据class定位
	*//*[@addtabs='1594']   
		# 根据元素的其他属性进行定位
	*//iframe  
		# 根据tag标签定位
	*//*[@addtabs='397'and @py='csgl']  
		# 使用一个元素的多个属性同时定位
	//*[text()='批次管理']/../td[2]  
		# '..'表示返回到父级标签(多用于表格元素查找)
	//*[contains(text(),'注销')] 
		# 模糊匹配属性值
	*//*[@id='table']/tbody/tr[1]/td[2] 
		# '/'绝对路径,必须从父级一层一层查找
	*//*[@id='table']//td[text()='OK']  
		# '//'相对路径,不必从父级一层一层查找
	//td[starts-with(text(),'确定') ]  
		# starts-with是匹配某个属性以某个值开头

用xpath定位span标签的文本

//*[text()='文本内容']
# 例如,定位该页面的文章标题
//*[text()='XPath元素定位笔记']

在这里插入图片描述

实战案例笔记:

定位文本的父元素button

在这里插入图片描述

# 根据文本定位父元素
# 例如,直接点击文本会报错,要点击文本的父元素才可以点击到按钮,这时候就定位文本的父元素
//span[contains(text(),"取 消")]/..

定位邻标签

参考地址: https://www.geek-share.com/detail/2789747230.html
案例源码
在这里插入图片描述

//p[text()="系统版本号"]/following-sibling::input
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

识途老码

赞赏是第一生产力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值