【问题标题】:create nested relative xpath for tag with no attributes为没有属性的标签创建嵌套的相对 xpath
【发布时间】:2020-01-05 23:34:50
【问题描述】:

我需要获取<a> 标记的计数,该标记位于<span> 内部,而不是其他任何地方。我正在使用机器人框架 selenium2library,我不能使用绝对 xpath。它必须是相对的。

我尝试创建没有任何属性的嵌套 xpath,但这是不允许的。

<a class="xyz"></a>
<span>
<a class="xyz"></a>
<a class="xyz"></a>
</span>

${count}= Get Element Count xpath=//span[]//a[contains(@class, 'xyz')] 我希望${count}${2},但错误是 SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//span[]//a[contains(@class, 'xyz']' is not a valid XPath expression

【问题讨论】:

    标签: html selenium xpath robotframework


    【解决方案1】:

    你的表达不正确。

    1. 你不需要[]

    2. 你需要),像这样改变你xpath

    //span//a[contains(@class, 'xyz')]
    

    【讨论】:

      【解决方案2】:

      正如@frianH 指出的那样,您的 Xpath 表达式是错误的,如果您想使用类名来进行匹配计数,那么您应该使用 use //span//a[@class='xyz'],因为 'contains' 可能是在这里很脆弱,因为您是按文本匹配的。

      现在有人可以争辩说 //span//a[@class, 'xyz'] 是更好的使用方法,但在你的情况下,更早的方法是更好的方法。

      还有其他更好的方法,您需要做一些研究,看看哪种方法最适合您的情况。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-02
        • 1970-01-01
        • 2018-08-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多