Selenium在等待时扫描错误元素的页面

时间:2013-08-15 15:16:13

标签: java selenium wait

好的,我不确定我的问题是什么有一个现成的解决方案,但基本上我试图进行自动化测试的网站很容易出现“系统错误”。我有一台状态机可以浏览各种网页以获得理想的结果。

问题的关键在于,在等待页面上的元素时,selenium正在执行120秒的超时,但是页面上的所有页面都是大的“系统错误”。

我已经设置了一些框架,可以扫描页面中的系统错误,如果发现这个错误就抛出一个CriticalPageException。但是,我希望能够在WebDriverWait中扫描此错误。

有没有办法在Selenium的Java版本中执行此操作,或者我是s.o.l.?

1 个答案:

答案 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()只返回您的搜索上下文