我正在尝试等待一个元素可见,所以我在下面的方法中设置了一个隐式等待:
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秒,而不是方法中传递的超时。
答案 0 :(得分:0)
看来,在使用.isDisplayed()
时你犯了一个错误。您必须使用selenium webdriver isDisplayed()
并且您的代码显示您打算使用0秒超时。因此,这可能是您在执行日志中看到0秒的原因。
建议:更改您的方法名称并再次使用。
答案 1 :(得分:0)
问题实际上与元素的可见性有关,元素由于某种原因不可见。