在Selenium中,当使用显式等待时,我需要禁用隐式等待

本文关键字:等待 Selenium | 更新日期: 2023-09-27 18:15:59

在创建驱动程序时,我已将隐式等待设置为10秒。当我希望使用显式等待时,是否必须将隐式等待设置为0?

示例:

WebDriver webDriver = new FirefoxDriver();
webDriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
//Now I want to use Explicit wait

我必须做webDriver.manage().timeouts()。implicitlyWait (0, TimeUnit.SECONDS);还是没有必要?

WebDriverWait wait = new WebDriverWait(webDriver, WAIT_FOR_TIMEOUT_SEC);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id(id)));

在Selenium中,当使用显式等待时,我需要禁用隐式等待

没有必要将隐式等待时间重新声明为零。

原因:当你说你想使用显式等待时,这仅仅意味着你的隐式等待时间不足以等待元素出现,所以你在一个特定的操作之后声明了一个显式等待。

何时使用隐式等待:隐式等待是一种告诉selenium在执行每个操作后等待一段特定时间的方法。这有助于您执行的大多数操作的同步。您给出的时间越长,测试执行的速度就越慢。关于隐式等待的更多信息

何时应该使用显式等待:显式等待用于当特定的操作需要时间来执行或加载到DOM。这并不是告诉selenium在每个操作之后等待特定的时间,而是告诉selenium在执行特定操作之前等待一段时间。关于显式等待的更多信息

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

希望能有所帮助。