@AfterClass で testng を使用して「ティアダウン」する最良の方法を誰かが推奨できますか? ウィンドウやポップアップがハングすることがあり、ホームページに戻って次のクラスを開始し、モーダル ダイアログ エラーを回避するために適切にログアウトすることができません。
ホームページでウィンドウハンドルを取得してから、ポップアップでウィンドウハンドルを取得してから、 @AfterClass に switchTo を入れてみましたが、うまくいきません。driver.close() も試しました。しかし、次のクラスは到達不能ブラウザ エラーでスキップされます。
ページ上にあるエラーやポップアップから抜け出すことができ、次のテストクラスを実行するためにログインページにクリーンなブラウザーウィンドウを残すことができる、適切な tearDown @AfterClass メソッドが本当に必要です。
編集: コードの追加:
package TestPackage;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.*;
import org.testng.annotations.Test;
//@Test (priority = 1)
public class test1 {
public static WebDriver driver = new FirefoxDriver();
Environment environment = Environment.QA03();
User testUser = User.ns_system();
AxUtilities axUtilities;
@BeforeClass
@Parameters("environment")
@Test
public void login(String environment1){
// environment = new Environment(environment1);
axUtilities = new DAxUtilities(environment1, driver);
// DAxUtilities dAxUtilities = new DAxUtilities(environment);
Login login = new Login();
login.getLogin(testUser, axUtilities, driver);
axUtilities.sleep(5000);
}
@Test
public void testNothing(){
String s = "public void testNothing() reached...";
System.out.println(s);
}
@AfterClass
public void verifyOKAndLogout() {
driver.quit();
// DAxUtilities dAxUtilities;
}
}
テストクラス 1 と 2 は、クラス名を除いて同じです...
テストはxmlファイルから実行されます。そして、各テストを独自のxmlファイルに入れても、xmlファイルの多くのバリエーションを試しました。
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="TestSuite1" verbose="1">
<parameter name="environment" value="QA03"/>
<test name="Test1">
<classes>
<class name="TestPackage.test1"/>
<!--<class name="TestPackage.test2"/>-->
</classes>
</test>
<test name="Test2">
<classes>
<class name="TestPackage.test2"/>
</classes>
</test>
</suite>
ただし、常に 2 つの Web ドライバーが、他のコードが実行される前に、テスト実行の最初に次々と作成されます。そして、ブレークポイントは、コードがクラス 1 のテストを実行する前に、クラス 1 の最初からクラス 2 の最初まで確実にスキップしていることを示しています...