Selenium在等待时扫描页面以查找错误元素



好的,我不确定我的问题是否有现成的解决方案,但本质上,我试图在其上进行自动测试的网站很容易出现"系统错误"。我有一个状态机,它可以浏览各种网页以获得所需的结果。

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

我已经设置了一些框架,可以扫描页面以查找系统错误,并在发现此错误时抛出CriticalPageException。但是,我希望能够在WebDriverWait中扫描此错误。

有没有一种方法可以在Selenium的Java版本中做到这一点,或者我是s.o.l。?

我们也遇到了类似的问题。我们所做的是创建一个自定义的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;
}

EDIT:getSearchElement()只返回您的搜索上下文

最新更新