xpath contains_Web自动化测试 | Xpath & CSS Selector定位

Xpath 和 CSS Selector简介

CSS Selector

CSS Selector和Xpath都可以用来表示XML文档中的位置。CSS (Cascading Style Sheets)是一种样式表语言,是所有浏览器内置的,用于描述以HTML或XML编写的文档的外观和样式。CSS Selector用于选择样式化的元素,所以理论上前端人员可以定位 DOM 节点并设置样式,那么对于测试人员这些元素也可以定位到。

XPath

XPath是XML路径语言,是一种查询语言,使用路径表达式浏览XML文档中的元素和属性。XPath标准语法如下:

Xpath=//tagname[@attribute='value']

  • *// :* 选择当前节点

  • *Tagname:* 节点标签名

  • *@:* 选择属性

  • *Attribute:* 节点属性名

  • *Value:* 属性值

XPath有绝对定位和相对定位两种,绝对定位使用绝对路径,缺点是路径太长,只要一个节点变动就无法定位。以单斜杠(/)开始,表示从根节点开始选择元素。下面是页面https://www.baidu.com/上“百度一下”按钮的绝对路径:

/html/body/div[1]/div[1]/div[5]/div[1]/div/form/span[2]/input

b9c3028806d9f0b14248c0706aa65579.png

相对路径以双斜杠(//)开始,可以从HTML文档的任何位置开始,“百度一下”按钮的相对路径可以表示如下

//input[@id="su"]

Xpath VS. CSS Selector

CSS Selector和Xpath几乎可以定位到所有Web元素(HTML和XML文档元素,Android应用的层级结构使用xml编写),它们的主要差异包括:

  1. XPath通过遍历的方式从XML文档中选择节点,CSS Selector是一种匹配模式定位,因此CSS Selector比 XPath 执行效率更高。

  2. Xpath可以通过文本来定位,而CSS Selector不能;

  3. Xpath可以通过子节点来定位父节点,CSS Selector是前向的,不能利用子节点定位父节点。

  4. CSS Selector语法相比Xpath更加简洁

Xpath 和 CSS Selector元素定位

接下来对比一下这两种方法的语法差异,节点的定义我们规定如下:

f75e8e4d016d4d943ca675c2c84745c0.png

儿子元素定位

xpath使用‘/’,CSS Selector使用‘>’

XpathCSS Selector
语法//element/elementelement>element
示例//div/adiv > a
描述选择父元素为
元素的所有 元素。

还可以使用XPath Axes(轴)child 来定位子元素

XPATH:

//div/child::*   # 选择父元素为 
元素的所有儿子元素//div/child::a  # 选择父元素为
元素的所有元素

CSS Selector:

div > a:nth-child(2) # 选择父元素为 
元素的第二个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值