同时给出隐式等待和显式等待,以便 Webdriver 花费多少时间查找元素



我隐式等待是 20 秒显式等待也给 20 秒,以便找到显式直到条件与 find 元素需要多少时间 Web 驱动程序

法典:

driver.manage().timeouts().implicitlyWait(23, TimeUnit.SECONDS);
new WebDriverWait(driver, 23).until(ExpectedConditions.elementToBeClickable(element));

如果你以这种方式给出,那将没有任何区别,这将需要 20 秒。

当您调用函数时,隐式等待开始工作findElement但显式等待将通过重复调用findElement直到找到元素来工作。因此,如果您给隐式等待 60 秒,显式等待 70 秒,那么它将等待 120 秒,因为当第一次显式等待调用 findElement 时,隐式等待将保持它 60 秒,然后它将释放控件,但显式等待仍有 10 秒,因此在 61 秒, 它将再次调用findElement函数,现在由于隐式等待是 60 秒,它将再等待 60 秒,因此需要 120 秒。现在你可以看到,即使你设置了隐式等待 60 秒和显式等待 70 秒,它也会把事情搞砸,最终等待 120 秒,所以永远不要将两者结合起来。

此外,隐式等待在驱动程序中,显式等待在本地语言绑定中。

根据显式和隐式等待的文档,直接回答 混合隐式等待显式等待可能会导致不可预测的等待时间。

例如,将隐式等待设置为 10 秒,显式等待设置为 15 秒,可能会导致在 20 秒后发生超时。

引用

  • 在这里,您将找到有关在硒中使用隐式等待的详细讨论
  • 在这里,您将找到有关将隐式等待替换为显式等待(selenium webdriver & java(的详细讨论

最新更新