小编典典

selenium:在其他元素旁边找到元素

selenium

我正在使用Selenium将Web测试添加到我的项目中。我已经有很多使用以下方法检查特定元素的测试:

final WebElement dateElement = web.findElement(By.id(elementId));

这很好。现在,我还有另一个要求。这是在我生成的页面中:

<input type="text" id="dateElement" name="dateElement" value="bunch of monkeys" tabindex="101" placeholder="yyyy-mm-dd">
<span class="error">dateElement is an invalid date</span>

如何掌握错误消息?我想要一些允许我在dateElement之后请求带有“错误”类的span元素的东西。

(此错误消息是由Spring MVC合并的,因此直接更改它并不容易。我想可能是这样,但我不希望这样做)。

任何其他想法都欢迎。


阅读 352

收藏
2020-06-26

共1个答案

小编典典

好的,我已经找到了使用Xpath和后续兄弟的解决方案,它并不太复杂。

final WebElement errorElement = web.findElement(By.xpath("//*[@id='" + elementId + "']/following-sibling::span[@class='error']"));

这给了我我想要的东西,并NoSuchElementException在不在这里时抛出了一个,这正是我想要的。

2020-06-26