一尘不染

流利等待和WebDriver等待-区别

selenium

我已经看到FluentWaitWebDriverWait在使用selenium的代码。FluentWait使用轮询技术,即它将针对特定的每个固定间隔进行轮询WebElement。我想知道如何WebDriverWait处理ExpectedConditions

考虑以下Java示例:

WebDriverWait wait = new WebDriverWait(driver, 18);
wait.until(ExpectedConditions.elementToBeClickable(By.linkText("Account")));

WebElement element = driver.findElement(By.linkText("Account"));
element.sendKeys(Keys.CONTROL);
element.click();

ExpectedConditions.elementToBeClickable(By.linkText("Account"))监视器是否linkText("Account")可单击,或者等待18秒钟再单击?


阅读 286

收藏
2020-06-26

共1个答案

一尘不染

在您的示例中,在超时之前,wait.until(ExpectedConditions...)将持续linkText18秒(每0.5秒)查找一次“帐户”。

WebDriverWait是的子类FluentWait<WebDriver>。在其中,FluentWait您可以配置更多选项以及最长的等待时间,例如轮询间隔,忽略的异常等。此外,在您的代码中,您无需等待,然后可以findElement在下一步中执行以下操作:

WebElement element = wait.until(
        ExpectedConditions.elementToBeClickable(By.linkText("Account")));
2020-06-26