【发布时间】:2013-10-15 09:36:04
【问题描述】:
我正在使用 jBehave/Selenium 进行自动化测试。
现在我使用下面的代码来获取页面上的可见元素;
public WebElement getVisibleElement( final By by, final WebElement parentElement, int timeoutValue, TimeUnit timeoutPeriod, int pollingInterval, TimeUnit pollingPeriod ) {
return fluentWait(timeoutValue, timeoutPeriod, pollingInterval, pollingPeriod).until( new Function<WebDriver, WebElement>(){
public WebElement apply(WebDriver driver) {
try{
WebElement element = parentElement.findElement(by);
if ( element.isDisplayed() ) {
return element;
} else {
return null;
}
} catch( NoSuchElementException e ) {}
return null;
}
} );
}
现在的问题是,如果页面上不存在该元素,Selenium 会花费大量时间尝试在页面上找到它。 有什么办法可以优化代码,这样在这种情况下就不会花很长时间?
【问题讨论】:
标签: java selenium webdriver selenium-webdriver fluent