代码:
driver.manage().timeouts().implicitlyWait(23, TimeUnit.SECONDS);
new WebDriverWait(driver, 23).until(ExpectedConditions.elementToBeClickable(element));
答案 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 Waits和Explicit Waits的文档直接回答可能导致无法预测的等待时间。
例如,将隐式等待设置为10秒,显式等待设置为15秒,可能会导致20秒后超时。