実際、TestNG を使用して Eclipse で Web アプリケーションのテスト ケースを実行しようとしています。しかし、Selenium スクリプトの実行中に問題が発生しました。一部のテストケースが失敗しても、実行を継続したいだけです。しかし、私はそれを行う方法がわかりません。
私はこのトピックの友達にとても慣れていません。私を助けてください..!!!とにかく事前に感謝します。
実際、TestNG を使用して Eclipse で Web アプリケーションのテスト ケースを実行しようとしています。しかし、Selenium スクリプトの実行中に問題が発生しました。一部のテストケースが失敗しても、実行を継続したいだけです。しかし、私はそれを行う方法がわかりません。
私はこのトピックの友達にとても慣れていません。私を助けてください..!!!とにかく事前に感謝します。
わかりました。その場合、@Test
アノテーションの属性の 1 つを使用する必要があります。
@Test(alwaysRun = true)
true に設定すると、失敗したメソッドに依存していても、このテスト メソッドは常に実行されます。
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 が呼び出されるたびに例外を無視することができます。