有没有办法测试元素是否存在?任何 findElement 方法都会以异常结束,但这不是我想要的,因为元素可能不存在,这没关系。那不是测试失败,所以异常不能成为解决方案。
我找到了这篇文章: Selenium C# WebDriver: Wait until element is present 。
但这是针对 C# 的,我不太擅长。 Java 中的代码是什么?我在 Eclipse 中尝试过它,但我没有将它直接放入 Java 代码中。
这是代码:
public static class WebDriverExtensions{
public static IWebElement FindElement(this IWebDriver driver, By by, int timeoutInSeconds){
if (timeoutInSeconds > 0){
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeoutInSeconds));
return wait.Until(drv => drv.FindElement(by));
}
return driver.FindElement(by);
}
}
原文由 tester 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用
findElements
而不是findElement
。findElements
如果没有找到匹配的元素而不是异常,将返回一个空列表。要检查元素是否存在,您可以试试这个
如果至少找到一个元素,则返回 true,如果不存在,则返回 false。
官方文档 推荐这种方法: