Selenium Grid - 在测试失败时做一些事情

时间:2017-11-20 16:01:55

标签: selenium selenium-webdriver selenium-grid

我对Selenium Grid比较陌生,而且我遇到了测试稳定性方面的问题。出于某种原因,当我通过网格和RemoteWebDriver运行我的测试时,我的测试会间歇性地停留在IEDriverServer打开页面上,

"This is the initial start page for the WebDriver server."

这会导致针对该计算机的其余测试失败,这非常令人沮丧,因为100次中的99次相同的测试将传递重新运行。

我想做类似以下的事情,但似乎无法实现它。这是伪代码:

if(initialWebDriverPageTextIsOnPage > 30seconds)
{    
    driver.Close();
    driver.Dispose();
}

我觉得这可以作为我的basetest作为一个持续轮询页面的听众,但我似乎无法弄清楚如何实现这一点。

非常感谢任何有关根本原因的建议或建议

1 个答案:

答案 0 :(得分:0)

如果您想等待预定的网址等待一段时间,您可以使用正确的 ExplicitWait WebDriverWait strong> ExpectedConditions 子句如下:

WebDriverWait wait_4_link = new WebDriverWait(driver, new TimeSpan(0,0,10));
    if(wait_4_link.Until(ExpectedConditions.UrlToBe("your_intended_url")))
    {
        //Your Test Code
    }
    else
    {
        driver.quit();
    }
  

作为 ExpectedConditions 的替代UrlToBe子句的替代方法,您还可以使用以下任一条款:

wait_4_link.until(ExpectedConditions.UrlContains("your_url_fraction"));
wait_4_link.until(ExpectedConditions.UrlMatches("regex_pattern_of_url"));