使用XPath或CssSelector在ID找到的元素中按标签名称查找第n个元素

时间:2016-11-17 18:08:29

标签: c# visual-studio selenium

我需要抓住A元素内的第三个span元素,它也位于具有ID的LI元素内。我想使用ID首先找到LI元素,然后在其中找到第3个span元素。 HTML示例:

<li id='MyID'>
<a href="MyHRef">
<span>first span</span>
<span>second span</span>
<span>third span</span>
</a>
</li>

我试过以下内容,但我不认为我写得正确:

public readonly By Menu_ProgramMatchingNumber = By.XPath("li[@id='MyID']/following-sibling::span[3]");

2 个答案:

答案 0 :(得分:3)

根据XPath语法:

http://www.w3schools.com/xml/xpath_syntax.asp

您可能想要使用://li[@id='MyID']/a/span[3]

或更具体://li[@id='MyID']/a[@href='MyHRef']/span[3]

答案 1 :(得分:1)

使用CSS:

By.CssSelector("li#MyID a > span:nth-of-type(3)")