吐血总结工作中遇到的定位问题,不看一定后悔

XPATH即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。Xpath基于XML的树状结构,提供在数据结构树中找寻节点的能力。

– css 和 xpath 高级定位

一、 八大定位

定位方式对应元素代码
id元素的id属性:
driver.findElement(By.id(‘username’));
name元素的 name 属性:
driver.findElement(By.name(‘pwd’));
className元素的 class 属性:driver.findElement(By.className(‘text’));
linktexta 标签的文字:
登录
driver.findElement(By.linkText(‘登录’));
partialLinkText使用 a 标签的文字进行模糊

匹配定位:
这个链接很长

driver.findElement(By.partialLinkText(链接));
tagName标签名称:driver.findElement(By.tagName(‘button’));
cssSelectorcss 表达式,任意元素driver.findElement(By.cssSelector(‘xx’));
xpathxpath 表达式,任意元素driver.findElement(By.xpath(‘xx’));

二、 Css 定位:

表达式含义
使用绝对路径定位html>body>div>nav从根 html 一路查找到 nav,>表示路径层级
使用 class 名称定位.form-control定位class属性为form-control的元素
使用 id 值定位#top-search-form定位 id 值为 top-search-form 的元素
使用属性定位元素input[name=‘word’]定位 name 属性为 word 的 input 标签元

input[name=‘word’][type=‘text’]多个属性一起定位
使用属性值的一部分

定位元素
div[id$=‘message’]以 message 结尾的 id 属性的 div 元素
div[id*=‘model’]id 属性值包含 model 的 div 元素
定位同级兄弟元素button + div定位与 button 同级的元素,button 之后的 div
使用伪类定位元素li:first-child所有同级 li 元素中的第一个
li:nth-child(2)所有同级 li 元素中的第 n 个
li:last-child所有同级 li 元素中的最后一个

三、Xpath 定位

表格描述
/从根节点选取
//从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置
选取当前节点的父节点
@选取属性
*匹配任何节点
//title[@lang]选取所有拥有名为 lang 的属性的title 元素
/bookstore/book[1]选取属于 bookstore 子元素的第一个 book 元素
/bookstore/book[last()]选取属于 bookstore 子元素的最后一个 book 元素
/bookstore/book[position()❤️]选取最前面的两个属于 bookstore元素的子元素的 book 元素
//*[text()=‘文本’]选取文字为文本的所有元素
//div[contains(@text,‘xxx’)]选取 text 属性包含 xxx 的 div 元素

四、Xpath 轴

轴名称结果
ancestor选取当前节点的所有先辈(父、祖父等)
ancestor-or-self选取当前节点的所有先辈(父、祖父等)以及当前节点本身
parent选取当前节点的父节点
child选取当前节点的所有子元素
descendant选取当前节点的所有后代元素(子、孙等)
descendant-or-self选取当前节点的所有后代元素(子、孙等)以及当前节点本身
following选取文档中当前节点的结束标签之后的所有节点
following-sibling选取当前节点之后的所有同级节点
preceding选取文档中当前节点的开始标签之前的所有节点
preceding-sibling选取当前节点之前的所有同级节点
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值