java - 切换到 Java 8 后 Webdriver 断言失败

标签 java selenium

切换到 Java 8 后,许多 Webdriver 断言在尝试在渲染元素之前断言某些内容时会失败。看起来渲染速度和 Java 测试不同步。项目中使用的Webdriver是Selenium-chrome-driver-2.43.1。我还没有在其他浏览器上尝试过这个。无论如何,我可以在不放置太多“等待元素”的情况下完成这项工作吗?

最佳答案

您可以使用隐式或显式等待。

隐式影响所有请求,如果应用程序通常很慢​​,则更容易,因此您希望增加所有请求的等待时间。但设置得太高可能会导致测试等待很长时间,如果您不想这样做:

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

显式等待为您提供了更大的灵 active ,但需要更多的工作。例如,假设您希望大部分操作在 10 秒内完成,因此您将上面的隐式等待设置为 10 秒。但是假设您知道以下操作可能会因隐式等待而失败,因为该特定元素平均需要 15 秒才能显示:

 WebElement element = driver.findElement(By.name("q"));

所以你可以将其更改为:

 WebElement element = (new WebDriverWait(driver, 20))
         .until(newExpectedCondition<Boolean>() {
            public Boolean apply(WebDriver d) {
                return driver.findElement(By.name("q"));
        }
    });

关于java - 切换到 Java 8 后 Webdriver 断言失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32890596/

相关文章:

java - 将友谊保存在数据库中。社交网络服务

java - ssh 与 jsch : non 'simple' command output trailed with unexpected output combined from fragments of the command in use

python - 从网页上的 anchor 标记访问详细信息

java - Javascript 完成后开始 Selenium 测试

java - 通过 Maven/Testng 通过动态自定义 TestNG 文件运行测试

java - JFrame 加载延迟

java - 我如何压缩或编码椭圆曲线公钥并将其放在网络上?

java - Spring 和 Spring.net 有什么区别吗?

java - 为什么在 IE 中应该更喜欢使用 CSS 而不是 XPath?

java - 如何正确设置 Java/Selenium 配置以运行自动化测试?