同时给出隐式等待和显式等待所以webdriver需要多少时间才能找到元素

时间:2018-05-24 09:05:33

标签: java selenium selenium-webdriver

我给出隐式等待是20秒显式等待也给20秒所以找到显式直到条件与find元素花了多少时间拿一个web驱动程序

代码:

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

2 个答案:

答案 0 :(得分:0)

如果你这样做会没有任何区别,它需要20秒。

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

而且隐式等待在驱动程序中,显式等待是在本地语言绑定中。

答案 1 :(得分:0)

根据Explicit and Implicit Waits混合Implicit WaitsExplicit Waits的文档直接回答可能导致无法预测的等待时间。

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

参考