java - Selenium WebDriver : How to make sure element availability on Web Page?

标签 java selenium testing automation webdriver

在我们对任何网络元素采取行动以避免 NoSuchElementException 异常之前,我已经查看了许多关于如何确保元素可用性的谷歌答案。

  1. WebDriver driver = new FirefoxDriver();
  2. driver.findElement(By.id("userid")).sendKeys("XUser");

如果该元素在页面上不可用,这里第 2 行将抛出 NoSuchElementException

我只是想避免抛出这个异常。

在 WebDriver 中有许多方法可以检查这一点。

  1. isDisplayed()
  2. isEnabled()
  3. driver.findElements(By.id("userid")).size() != 0
  4. driver.findElement(By.id("userid")).size() != null
  5. 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/

相关文章:

xml - 用于 HTTP 和 JMS 的负载测试工具

java - 费舍尔精确检验的算法或数学是什么?

java - 正则表达式问题在解析时删除\n

java - 在 fragment 中调用接口(interface)方法抛出 ClassCastException

java - 我在 Android Studio 中遇到 java.lang.unsupportedoperationexception

ruby - 对具有不同子域的多个网站运行 selenium 测试

python - 使用 selenium 和 python 抓取 Instagram 关注者页面

java - 需要有关嵌套滚动 Pane 逻辑的帮助

selenium - 如何使用 Selenium 在测试之间存储值

java - 数据库查询的单元测试