java - 显式等待在 Selenium webdriver 中不起作用

标签 java selenium webdriver

我试图在我的页面中找到一个元素。该元素只有在应用程序出现任何错误时才会出现。我处理得很好,唯一的问题是它等待 30 秒(隐式等待)才能进入下一步。我不想等待 30 秒,而是希望我的脚本在进入下一步之前等待 3 秒,所以我决定使用显式等待相同的时间。这是我的代码

WebDriverWait wait = new WebDriverWait(driver, 3);
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("errorelement")));

问题是 Selenium webdriver 仍在等待该元素长达 30 秒,然后才会给出错误并转到下一步。我也尝试使用 visibilityOfElementLocated 选项,但它仍然无法正常工作。

我在这里遗漏了什么吗?

Selenium 版本:- 2.46.0

浏览器:- Mozilla、Chrome

最佳答案

我建议将隐式等待设置为 0,并始终使用显式等待:

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

这是一个很好的answer关于这个话题。

关于java - 显式等待在 Selenium webdriver 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31510285/

相关文章:

java - 为什么Java中数字除以零无穷大?

java - 如何断言图像是否在 Selenium 中放大

selenium - 如何避免 WebDriver 在等待 Google Ads 或 Google Analytics 加载时卡住?

java - 如何将数据从 Perl 传递到 Java?

java - 智能 : UI Designer Documentation/Tutorial

java - 从 javascript 调用 Java 时出现通信权限问题

selenium - 如何通过包含大括号的类名识别元素

php - 使用 PHP Selenium Webdriver 单击下拉菜单中的选项?

java - 有什么办法可以解决 "java.lang.RuntimeException: Unable to find a free port"问题

authentication - JMeter + WebDriver Sampler如何从授权cookie中保存 token