在我们对任何网络元素采取行动以避免 NoSuchElementException 异常之前,我已经查看了许多关于如何确保元素可用性的谷歌答案。
WebDriver driver = new FirefoxDriver();
driver.findElement(By.id("userid")).sendKeys("XUser");
如果该元素在页面上不可用,这里第 2 行将抛出 NoSuchElementException。
我只是想避免抛出这个异常。
在 WebDriver 中有许多方法可以检查这一点。
isDisplayed()
isEnabled()
driver.findElements(By.id("userid")).size() != 0
driver.findElement(By.id("userid")).size() != null
driver.getPageSource().contains("userid")
在上述方法中,哪一个是确保元素可用性的最佳方法?为什么?
除了这些还有其他方法吗?
提前致谢。感谢您抽出宝贵时间。
最佳答案
public boolean isElementPresentById(String targetId) {
boolean flag = true;
try {
webDrv.findElement(By.id(targetId));
} catch(Exception e) {
flag = false;
}
return flag;
}
- 如果该元素可用,您将从方法中获取 True,否则获取 false。
- 因此,如果您得到 false,则可以避免点击该元素。
- 您可以使用上述代码确认元素的可用性。
关于java - Selenium WebDriver : How to make sure element availability on Web Page?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40925734/