Selenium 为什么';t在等待中指定的2秒后出现元素定位超时

Selenium 为什么';t在等待中指定的2秒后出现元素定位超时,selenium,selenium-webdriver,Selenium,Selenium Webdriver,所以我有这个代码: public static boolean isWebElementPresent(WebDriver driver, By byExpression) { WebDriverWait wait = new WebDriverWait(driver, 2); try { wait.until(ExpectedConditions.presenceOfElementLocated(byExpression)); return

所以我有这个代码:

public static boolean isWebElementPresent(WebDriver driver, By byExpression) {

    WebDriverWait wait = new WebDriverWait(driver, 2);
    try { 
        wait.until(ExpectedConditions.presenceOfElementLocated(byExpression));
        return true;
    } catch (TimeoutException e) {
        //System.out.println("Webelement is not present under this expression " + byExpression);
        return false;
    }
}
等待呼叫大约需要20秒才能捕获超时。我的问题是,为什么这个方法不在我在上面的WebDriverWait中指定的2秒后调用timeout?在这种情况下,等待做什么


谢谢

您是否有隐式等待设置?那是您的问题。
presenceOfElementLocated
方法最终将调用
findElement
,该方法将使用隐式等待。它将在那里等待15秒,等待元素出现。15秒结束后,控件将返回到
WebDriverWait
,其中会显示“这花费了15秒,超过2秒,因此引发异常”。你必须降低你的等待时间。是的,现在我明白了,谢谢