XPath常用方法

本文介绍了XPath在Web自动化测试中用于元素定位的方法,包括通过class、id、type和text等属性进行精确和模糊定位。针对具有相同属性的元素,可以通过GetWebElements方法获取元素列表并操作特定索引。同时,对于被遮盖的元素,可以尝试点击其父节点。文章还提供了一个解决元素遮盖问题的例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Web自动化测试中,很关键的一点是定位元素,那么如何定位元素呢?一般地,XPath技术常应用于定位元素。下面列出一些常用的Xpath技术。

1. Web HTML Sample 1与Xpath

<button class='Button_MobileSubmit' id='qa-fund-dialog' type='submit'>开始申请</button>
//*[@class='Button_MobileSubmit']         #定位,用属性class
//*[@id='qa-fund-dialog']                 #定位,用属性id
//*[@type='submit']                       #定位,用属性type
//*[text()='开始申请']                        #定位,用text()方法
//*[contains(@class,'Button_MobileSubmit')]  #模糊定位,用方法contains(@class,'xxx')
//*[contains(text(),'开始')]                  #模糊定位,用方法contains(text(),'xxx')

备注:元素定位时,用哪种方法都可以,但要保证定位的元素的唯一性。

2. Web HTML Sample 2与Xpath

<div class='FundCard__AnnualInterestSpan-fCwHrM'>3.00</div>
<div class='FundCard__AnnualInterestSpan-fCwHrM'>3.00</div>
<div class='FundCard__AnnualInterestSpan-fCwHrM'>5.00</div>

这个HTML中,因为有重复一样的class属性,假如我们想定位第二条,对我们来说是比较困难的,那怎么办呢?答案是我们可以通过类似Get WebElements方法调用,方法会返回List(3个元素),再操作这个List的下标即可。

举例:

1)场景:要点击,第二条数量为3.00的div

2)背景知识:
robot framework自动化框架,SeleniumLibrary开发包中:Get WebElements()方法
参数:locator
返回:a List of WebElement Object(返回一个与lcator匹配的列表)

3)实际脚本:
${List}    Get WebElements()    //*[@class='FundCard__AnnualInterestSpan-fCwHrM']
SeleniumLibrary.Click Element        ${List} [1]

备注:

  • Get WebElements()这个方法会返回3个Web对象(都满足//*[@class='FundCard__AnnualInterestSpan-fCwHrM']),再通过${List}[1]指定第二个对象,也就是满足场景要求的“第二条数量为3.00的div”。另外,注意${List}[0]为第一条
  • 本例子是Robot Framework框架,大家使用的框架不同,方法名也不同,但思路是相同的
  • 另外,有的时候确定一个元素需要2个以上条件,可使用多条件组合比如下面这个用and联合属性://*[@class='xxxx' and @type='yyyy']

3. Xpath常用问题解决

3.1元素遮盖问题

Web前端代码:

<lable class='radio-line'>
    <input type='radio' id='transactionService2'>

问题:  click element //*[@id='transactionService2']   点击这个点击不上,报错。

解决:click element //*[@id='transactionService2']/.. 或者 click element //*[@class='radio-line']/

备注:因为有些子节点的元素被父节点遮盖(需要试一试才知道是否有遮盖),这时可以通过点击其父节点方式解决,即在Xpath后加两个小点".."。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值