如何在标题下找到元素的xpath

时间:2017-11-22 07:30:13

标签: xpath selenium-webdriver

在网页中:

<h3 class="xh-highlight">Units Currently On Bed List</h3>
"[total beds=0]
"

我想找到总床数x = 0。 我该怎么办?

1 个答案:

答案 0 :(得分:0)

你的问题和你的评论有点矛盾。是否要在标题后找到文本,或者是否要查找包含文本[total beds=0]的元素?另外,您希望在文档中导航的准确程度如何?

要查找任何h3元素之后的文字,您可以使用此//h3/following-sibling::text()[1](参见XPath - select text after certain node)。

要在h3元素之后使用类&#34; xs-highlight&#34;查找文本。你可以使用这个://h3[@class='xh-highlight']/following-sibling::text()[1]

为了更加精确,您还可以查找标题文字://h3[@class='xh-highlight' and text()='Units Currently On Bed List']/following-sibling::text()[1]

但是,这与您的第一条评论中的html不匹配,因此您可能需要调整标题类和文本值。此外,即使它与h3元素之间存在其他元素,它也会找到任何第一个文本。

现在,您的第二条评论使您看起来确实想要找到包含该文本的元素。 //*[text()='[total beds=0]']无效的原因是因为文字中的换行符。如果你可以在源中摆脱它应该匹配,否则你可以&#34;忽略&#34;它使用//*[normalize-space(text())='[total beds=0]']在xpath中。 (这是假设你问题中的文字周围的引号实际上并不在文档中。)