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

Java 显式等待在Selenium webdriver中不起作用,java,selenium,webdriver,Java,Selenium,Webdriver,我试图在我的页面中找到一个元素。只有在应用程序中出现任何错误时,该元素才会出现。我处理得很好,唯一的问题是它需要等待30秒(隐式等待)才能进入下一步。我不想等待30秒,而是希望我的脚本在进入下一步之前等待3秒,所以我决定使用显式等待。这是我的密码 WebDriverWait wait = new WebDriverWait(driver, 3); wait.until(ExpectedConditions.presenceOfElementLocated(By.id("errorelement"

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

WebDriverWait wait = new WebDriverWait(driver, 3);
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("errorelement")));
问题是SeleniumWebDriver在给出错误并进入下一步之前,仍在等待该元素长达30秒。我也尝试了元素定位选项的可见性,但它仍然不起作用

我是不是遗漏了什么

Selenium版本:-2.46.0


浏览器:-Mozilla、Chrome

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

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

这是一个关于这个主题的好方法。

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

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

这是一个关于这个主题的好方法。

如果在同一个解决方案中使用隐式等待和显式等待,那么seleniumhq文档将出现问题

警告:不要混合隐式和显式等待。这样做可能会导致不可预测的等待时间。例如,将隐式等待设置为10秒,显式等待设置为15秒,可能会导致20秒后出现超时


添加官方文档链接及其屏幕截图-

请参阅有关混合显式和隐式等待的官方Selenium文档

()


如果在同一解决方案中使用隐式等待和显式等待,则seleniumhq文档将出现问题

警告:不要混合隐式和显式等待。这样做可能会导致不可预测的等待时间。例如,将隐式等待设置为10秒,显式等待设置为15秒,可能会导致20秒后出现超时


添加官方文档链接及其屏幕截图-

请参阅有关混合显式和隐式等待的官方Selenium文档

()


您能与我们分享完整的代码吗?似乎您忘记了从某处删除30秒等待时间佩蒂亚


这是非常直截了当的,我也有同样的问题,但这仅仅是因为我在启动浏览器时声明了隐式等待30秒,没有想到回头看它,因为它看起来“微不足道”。非常感谢您指出这一点,peetya。

您能与我们分享完整的代码吗?似乎您忘记了从某处删除30秒等待时间佩蒂亚


这是非常直截了当的,我也有同样的问题,但这仅仅是因为我在启动浏览器时声明了隐式等待30秒,没有想到回头看它,因为它看起来“微不足道”。非常感谢您指出这一点,peetya。

您能与我们分享完整的代码吗?你好像忘了从某处删除30秒的等待。你能和我们分享完整的代码吗?似乎您忘记了从某处删除30秒等待。