尝试从此HTML代码段创建XPath

时间:2010-04-07 22:05:02

标签: xpath selenium

我已经玩了一段时间编写XPath,但我无法提出我想要的内容。

我正在尝试根据已知文本(下面的代码片段中的myidentity)为链接编写XPath(在下面的代码片段中单击1并单击2)。有人可以查看并建议可能的解决方案吗?

HTML code snippet:

<div class="abc">
  <a onclick="mycontroller.goto('xx','yy'); return false;" href="#">
    <img src="images/controls/inheritance.gif"/>
  </a>
  myidentity
  <span>
    <a onclick="mycontroller.goto('xx','yy'); return false;" href="#">click1</a>
    <a onclick="mycontroller.goto('xx','yy'); return false;" href="#">click2</a>
  </span>
</div>

3 个答案:

答案 0 :(得分:2)

很难说没有看到HTML的其余内容,但以下内容应该有效:

//div[text()[contains(., "myidentity")]]/span/a

答案 1 :(得分:2)

您不需要在这里使用XPath,您可以使用CSS定位器。这些通常在不同的浏览器中更快,更兼容。

css=div:contains(myidentity) > span a:nth-child(1) //click1
css=div:contains(myidentity) > span a:nth-child(2) //click2

请注意,>只需要解决Selenium使用的CSS定位器库中的错误。

答案 2 :(得分:0)

请参阅Macro的答案 - 应使用此表单。

//div[text()[contains(., "myidentity")]]/span/a[2]

以下内容仅适用于包含div中的一段文字。

您需要根据包含身份文字的文字进行选择。

click1的Xpath

//div[contains(text(),"myidentity")]/span/a[1]

click2的Xpath

//div[contains(text(),"myidentity")]/span/a[2]