我有这样的结构:
<div>
<div>
<span class="">TextA</span>
</div>
<div>
<span class="">TextB</span>
</div>
</div>
我可以找到TextA的元素跨度,并且从那里,我想找到带有textB的跨度,然后点击它(不能单独找到它)。所以我像这样使用xpath:
webDriver.findElement(By.xpath("//span[contains(.,'TextA')]/following-sibling::span")).click();
我得到异常元素未找到。我以为这些跨度是兄弟姐妹?!在这种情况下,任何人都可以帮助我感谢
答案 0 :(得分:1)
<span>
不是兄弟姐妹。如果<span>
是兄弟姐妹,他们必须相邻。
例如:
<div>
<div>
<span class="">TextA</span>
<span class="">TextB</span>
</div>
</div>
在这种情况下,他们是兄弟姐妹,你的选择器会起作用。
实际上是兄弟姐妹的元素是<div>
。
可能适合您的xpath将是:
//span[contains(.,'TextA')]/../following-sibling::div/span
答案 1 :(得分:1)
我得到异常元素未找到。我以为这些跨度是兄弟姐妹?
这两个跨度不是兄弟姐妹 - 他们是不同元素的孩子,不能是兄弟姐妹。
您可以使用following
轴代替following-sibling
:
//span[contains(.,'TextA')]/following::span
或者,您可能会获得包含带有div
文字的span
的{{1}}元素,然后让它跟随兄弟:
TextA