Html 为没有属性的标记创建嵌套的相对xpath

Html 为没有属性的标记创建嵌套的相对xpath,html,selenium,xpath,robotframework,Html,Selenium,Xpath,Robotframework,我需要得到标记的计数,它位于内,而不是其他任何地方。我使用的是robot框架Selenium2库,不能使用绝对xpath。它必须是相对的 我试图创建没有任何属性的嵌套xpath,但这是不允许的 <a class="xyz"></a> <span> <a class="xyz"></a> <a class="xyz"></a> </span> ${count}=Get-Element-count

我需要得到
标记的计数,它位于
内,而不是其他任何地方。我使用的是robot框架Selenium2库,不能使用绝对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:未能对“Document”执行“evaluate”:字符串“//span[]//a[contains(@class,'xyz']”不是有效的XPath表达式

您的表达式不正确

  • 您不需要
    []

  • 您需要
    ,将您的
    xpath
    更改如下:


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

    现在有人可以说//span//a[@class,'xyz']是更好的使用方法,但在您的案例中,更早的方法更好

    还有其他更好的方法,你需要做一些研究,看看什么最适合你的情况

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