【问题标题】:uncertain behaviour when combining selenium test cases into JUnit test suite将 selenium 测试用例组合到 JUnit 测试套件中时的不确定行为
【发布时间】:2012-10-13 13:41:36
【问题描述】:

我有一个场景,我有 29 个测试用例。所有测试用例在独立运行时都会弹出新的firefox窗口并运行完成。但是,当我将测试用例(全部 29 个)组合到一个测试套件中时,我会收到“无法定位元素”的随机错误。如果我多次运行测试套件,我可以看到不同的测试用例在不同的地方随机失败。注意 - 在单击它们之前,我正在等待每个元素的可见性大约 100 秒。代码看起来像-

    WebElement myDynamicElement = (new WebDriverWait(driver, 100))
    .until(new ExpectedCondition<WebElement>() {
    @Override
    public WebElement apply(WebDriver driver) {
    return driver.findElement(element);
    }

有人可以建议吗?是否推荐使用较小的测试套件?

【问题讨论】:

    标签: selenium webdriver junit4 test-suite


    【解决方案1】:

    到目前为止还没有遇到类似的问题类型。 恕我直言,尝试使用更强大的等待机制fluentWait

    public WebElement fluentWait(final By locator){
                Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
                        .withTimeout(30, TimeUnit.SECONDS)
                        .pollingEvery(5, TimeUnit.SECONDS)
                        .ignoring(org.openqa.selenium.NoSuchElementException.class);
                WebElement foo = wait.until(
                        new Function<WebDriver, WebElement>() {
                            public WebElement apply(WebDriver driver) {
                                return driver.findElement(locator);
                            }
                        }
                );
                return  foo;              }     ;
    

    这里是 documentation 流畅等待

    用法如下:

    String cssSelectorElement ="blablablab";
    String xPathElement = "balblabla";
    
    fluentWait(By.cssSelector(cssSelectorElement)).click()
    //fluentWait(By.cssSelector(cssSelectorElement)).getText();
    
    fluentWait(By.xpath(xPathElement)).click()
    //fluentWait(By.xpath(xPathElement)).getText();
    

    不要忘记在您工作的 IDE(IDEA、Eclipse、NetBeans)中逐步调试。

    【讨论】:

    • 我在调试时将 driver.quit 注释掉了。每次测试后关闭 Firefox 确实有助于达到目的。也会听取您关于稳健等待的建议。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-22
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    相关资源
    最近更新 更多