隐式等待在selenium webdriver中不起作用

时间:2014-09-10 09:40:43

标签: java selenium selenium-webdriver

我正在尝试等待一个元素可见,所以我在下面的方法中设置了一个隐式等待:

    public boolean isDisplayed(String xpathElement,int timeOut ) {
    boolean found = true;

    try {
        driver.manage().timeouts().implicitlyWait( timeOut , TimeUnit.SECONDS );
        driver.findElement( By.xpath( xpathElement ) ).isDisplayed();

    } catch( NoSuchElementException e ) {
        driver.manage().timeouts().implicitlyWait( 0, TimeUnit.SECONDS );
        found = false;
    }
    driver.manage().timeouts().implicitlyWait( 0, TimeUnit.SECONDS );
    return found;
}

我使隐式等待无效,因为我使用webDriverWait并且我不想遇到问题,但是isDisplayed()显示该元素仍然不可见并显示时间out是0秒,而不是方法中传递的超时。

2 个答案:

答案 0 :(得分:0)

看来,在使用.isDisplayed()时你犯了一个错误。您必须使用selenium webdriver isDisplayed()并且您的代码显示您打算使用0秒超时。因此,这可能是您在执行日志中看到0秒的原因。

建议:更改您的方法名称并再次使用。

答案 1 :(得分:0)

问题实际上与元素的可见性有关,元素由于某种原因不可见。