即使在测试用例失败后也执行Selenium Script

时间:2013-09-11 15:02:43

标签: java selenium scripting selenium-webdriver testcase

实际上我正在尝试使用TestNG在Eclipse中运行Web应用程序的测试用例。但是在运行Selenium Scripts时我遇到了一些问题。我只是想继续执行,即使一些测试用例失败了。但我不知道该怎么做。

我对这个话题的朋友很新。请帮我..!!!无论如何,先谢谢。

2 个答案:

答案 0 :(得分:2)

好的,在这种情况下,您需要使用@Test Annotation的属性之一,即

@Test(alwaysRun = true)

如果设置为true,则即使依赖于失败的方法,也始终会运行此测试方法。

答案 1 :(得分:2)

在TestNG中使用 alwaysRun = true 注释并不能完全解决您的问题。

为了允许Selenium在偶尔出现异常时继续,你需要使用FluentWait类定义一个Wait对象,如下所示:

Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
       .withTimeout(30, SECONDS)
       .pollingEvery(5, SECONDS)
       .ignoring( NoSuchElementException.class, ElementNotFoundException.class );
// using a customized expected condition
WebElement foo1 = wait.until(new Function<WebDriver, WebElement>() {
     public WebElement apply( WebDriver driver ) {
       // do something here if you want
       return driver.findElement( By.id("foo") );
     }
   });
// using a built-in expected condition
WebElement foo2 = wait.until( ExpectedConditions.visibilityOfElementLocated(
     By.id("foo") );

这使您能够在调用.findElement之前忽略异常,直到达到某个预先配置的超时。