好的,我不确定我的问题是什么有一个现成的解决方案,但基本上我试图进行自动化测试的网站很容易出现“系统错误”。我有一台状态机可以浏览各种网页以获得理想的结果。
问题的关键在于,在等待页面上的元素时,selenium正在执行120秒的超时,但是页面上的所有页面都是大的“系统错误”。
我已经设置了一些框架,可以扫描页面中的系统错误,如果发现这个错误就抛出一个CriticalPageException。但是,我希望能够在WebDriverWait中扫描此错误。
有没有办法在Selenium的Java版本中执行此操作,或者我是s.o.l.?
答案 0 :(得分:0)
我们遇到了类似的问题。我们所做的是创建了一个自定义的waitForWebElement方法 民意调查网站,你可以做类似的事情
public WebElement waitForWebElement(final By by, final boolean isDisplayed) {
// Waiting 30 seconds for an element to be present on the page, checking
// for its presence once every 5 seconds.
Wait<SearchContext> wait = new FluentWait<SearchContext>(getSearchElement()).withTimeout(timeout, TimeUnit.SECONDS).pollingEvery(pollSeconds, TimeUnit.SECONDS).ignoring(NoSuchElementException.class);
WebElement webElement = wait.until(new Function<SearchContext, WebElement>() {
public WebElement apply(SearchContext search) {
try{
WebElement element = search.findElement(by);
catch(NoSuchElementException e){
if(CHECK_YOUR_ERROR_PRESENT){
throw CriticalPageException()
}else{
throw e;
}
}
return element;
}
});
return webElement;
}
编辑:getSearchElement()只返回您的搜索上下文