Open thienphuong opened 5 years ago
Trong 3 test methods ở bài 1 có 3 phần:
Phần 1: Mở một trang web
System.setProperty("webdriver.chrome.driver", ".\\drivers\\chromedriver.exe");
WebDriver chromeDriver = new ChromeDriver();
chromeDriver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
chromeDriver.manage().window().maximize();
chromeDriver.get("https://duckduckgo.com/");
Phần 2: Tương tác với các đối tượng theo kịch bản
// interact with any element on page
chromeDriver.findElement(By.id("search_form_input_homepage")).sendKeys("Selenium Vietnam");
chromeDriver.findElement(By.id("search_button_homepage")).click();
// check something: Web page title
String acutalTile = chromeDriver.getTitle();
String actualExpect = "Selenium Vietnam at DuckDuckGo";
// Verify
assertEquals(acutalTile, actualExpect);
Phần 3: Thoát khỏi trình duyệt.
chromeDriver.close();
chromeDriver.quit();
Trong 3 phần trên thì phần thứ 2 có thể code sẽ khác nhau. nhưng phần 1 và 3 luôn giống nhau ở tất cả các test method.
Để tránh bị trùng code của phần 1 ở các methods ta nên tách phần 1 thành một method dùng chung. Không phải là test method và để đảm bảo nó luôn chạy trước các test methods ta sử dụng annotation @Before
Chú ý đối tượng WebDriver ta khai báo thành đối tượng biến của class để dùng chung cho các methods.
Ta có đoạn code mong đợi như sau
WebDriver chromeDriver = new ChromeDriver();
@Before
public void tearUp(){
System.setProperty("webdriver.chrome.driver", ".\\drivers\\chromedriver.exe");
chromeDriver = new ChromeDriver();
chromeDriver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
chromeDriver.manage().window().maximize();
chromeDriver.get("https://duckduckgo.com/");
}
Để tránh bị trùng code của phần 3 ở các methods ta nên tách phần 1 thành một method dùng chung. Không phải là test method và để đảm bảo nó luôn chạy sau cùng mỗi test methods ta sử dụng annotation @After
@After
public void tearDown(){
chromeDriver.quit();
}
Không cần dùng chromeDriver.close();
Một số resource cần tham khảo
https://junit.org/junit4/javadoc/latest/ https://java2novice.com/junit-examples/junit-annotations/