【问题标题】:Find locator with contains text (Robotframework)查找包含文本的定位器(Robotframework)
【发布时间】:2019-08-01 16:35:00
【问题描述】:

从此代码如下:

<a href="javascript:;" id="cTDQo7-a" class="z-menu-cnt z-menu-cnt-img"><span id="cTDQo7-img" class="z-menu-img"></span> payment</a>
<span id="cTDQo7-img" class="z-menu-img"></span>
 "payment"

我想获取定位器使用关键字包含,但“付款”一词是 很多页面如payment1,payment2,payment3 而且 id 不是唯一的。

我尝试使用下面的代码,但对我不起作用。

//a[contains(.,'payment')]

//span[@class='z-menu-img'] [contains(.,'payment')]

//span[@class='z-menu-img'] and [contains(.,'payment')]

//span[@class='z-menu-img'] contains(.,'payment')

【问题讨论】:

  • 这里是 xpath //tagName[@attribute ='attributeValue' and contains(@attribute2, 'attribute2Value')] 的一般表示法。顺便说一句,您提供的上述 html 中的 payment 文本没有任何跨度。
  • 不得不问一个显而易见的问题:为什么不使用 Id 属性?

标签: xpath robotframework


【解决方案1】:

选项1:结合文字使用其他属性

//a[@class='z-menu-cnt z-menu-cnt-img' and normalize-space(.)='payment']

选项 2:如果您有多个没有唯一属性/路径的元素,请指定位置

(//a[contains(.,'payment')])[1]

第二个 xpath 将识别第一次出现的链接包含文本“付款”。您可以根据自己的兴趣更改标记名和索引。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-03
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    • 2017-01-24
    • 1970-01-01
    相关资源
    最近更新 更多