XPath常用方法

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后加两个小点".."。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值