TestNG와 함께 Java로 Selenium Webdriver를 배우고 있습니다. Google 로그인 페이지로 테스트 중입니다.@AftertTest가 완료된 후에 만 테스트를 실행하는 방법
순차적으로 테스트 사례를 실행하는 데 문제가 있습니다. 내가하고 싶은 것입니다 :
- 실행 @BeforeTest
- 테스트 실행 횟수 1 AfterTest 방법이 될 때까지
- 실행 @AfterTest
- 기다립니다 (브라우저 및 드라이버를 닫습니다) (성공적으로 로그인)는 테스트 번호 2 (로그인 실패)
을 실행하지만 제가 경험 한 것은 완료 :
- 실행 @BeforeTest는 테스트 번호 1 (완료 브라우저가 종료되지 않고 상태가 이전 테스트에서 유지에게 로그인 실행 테스트 번호 1 (성공적으로 로그인)
- 테스트 실행 번호 2 직후
- 는
- AfterTest입니다 실행
나는 2 일을 보냈지 만 그럴 수 없었다. 아래 코드 :
====================== ======================= TestNG documentation에서
package TestNG;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.*;
public class GoogleAccountLogin {
WebDriver driver;
@BeforeTest
public void setUp() {
System.setProperty("webdriver.gecko.driver","F:\\path\\geckodriver.exe");
driver=new FirefoxDriver();
}
@Test(priority=0)
public void LoginSuccessful() throws InterruptedException {
// Go to google account
driver.manage().window().maximize();
driver.get("https://accounts.google.com");
Thread.sleep(3000);
// Check if the page is correct
String currentTitle = driver.getTitle();
Assert.assertEquals(currentTitle, "Sign in - Google Accounts");
// Enter email and submit
WebElement email = driver.findElement(By.id("Email"));
email.clear();
email.sendKeys("validemail");
WebElement Next = driver.findElement(By.id("next"));
Next.click();
Thread.sleep(1000);
// Enter password
WebElement password = driver.findElement(By.id("Passwd"));
password.clear();
password.sendKeys("validpassword");
WebElement Login = driver.findElement(By.id("signIn"));
Login.click();
Thread.sleep(5000);
// Check if login successful
currentTitle = driver.getTitle();
Assert.assertEquals(currentTitle, "My Account");
}
@Test(priority=1)
public void LoginFailInvalidEmail() throws InterruptedException {
// Go to google account
driver.manage().window().maximize();
driver.get("https://accounts.google.com");
Thread.sleep(3000);
// Check if the page is correct
String currentTitle = driver.getTitle();
Assert.assertEquals(currentTitle, "Sign in - Google Accounts");
// Enter email and submit
WebElement email = driver.findElement(By.id("Email"));
email.clear();
email.sendKeys("falseemail");
WebElement Next = driver.findElement(By.id("next"));
Next.click();
Thread.sleep(1000);
// Check error message and login state
String errorMess = driver.findElement(By.id("errormsg_0_Email")).getText();
Assert.assertEquals(errorMess, "Sorry, Google doesn't recognize that email.");
currentTitle = driver.getTitle();
Assert.assertEquals(currentTitle, "Sign in - Google Accounts");
}
@AfterTest
public void tearDown() {
driver.close();
driver.quit();
}
}
그래, 맞아. 나는 시험을했고 효과가 있었다. OMG BeforeTest는 ** ** @Test>. <. 전에 각 튜토리얼에서 BeforeTest가 실행될 것이라고 말했습니다. 정말 고마워. –