2

実際、TestNG を使用して Eclipse で Web アプリケーションのテスト ケースを実行しようとしています。しかし、Selenium スクリプトの実行中に問題が発生しました。一部のテストケースが失敗しても、実行を継続したいだけです。しかし、私はそれを行う方法がわかりません。

私はこのトピックの友達にとても慣れていません。私を助けてください..!!!とにかく事前に感謝します。

4

2 に答える 2

2

わかりました。その場合、@Testアノテーションの属性の 1 つを使用する必要があります。

@Test(alwaysRun = true)

true に設定すると、失敗したメソッドに依存していても、このテスト メソッドは常に実行されます。

于 2013-09-11T16:06:12.203 に答える
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 が呼び出されるたびに例外を無視することができます。

于 2013-09-11T20:12:28.613 に答える