I. Code Test khi bạn mới học Selenium Webdriver
Đây là đoạn code mà bạn thường bắt gặp trong những bài hướng dẫn ở trên mạng về selenium webdriver.
public class LoginSpec {
WebDriver driver;
@BeforeEach
public void setUp() {
System.setProperty("webdriver.chrome.driver", "src\\test\\resources\\chromedriver.exe");
driver = new ChromeDriver();
driver.get("http://localhost/wp/wp-login.php");
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.manage().window().maximize();
}
@AfterEach
public void tearDown() {
if (driver != null) {
driver.quit();
}
}
@Test
public void login_success() {
driver.findElement(By.id("user_login")).sendKeys("giang");
driver.findElement(By.id("user_pass")).sendKeys("12345678");
driver.findElement(By.id("wp-submit")).click();
assertEquals("http://localhost/wp/wp-admin/", driver.getCurrentUrl());
}
}
Nhược điểm khi viết thế này:
- Bạn dùng trực tiếp API của selenium trong phần Test
- Bạn chả biết step của mỗi test thế nào, do đó bạn thường phải viết comment vào trong từng dòng code để giải thích ý nghĩa
II. Code test khi bạn đã sử dụng POM
class LoginSpec2 extends BaseTest {
LoginPage loginPage;
HomePage homePage;
@Test
public void login_success_2() {
loginPage = new LoginPage(driver);
homePage = new HomePage(driver);
loginPage.login("giang", "12345678");
homePage.isRightURL();
}
}- Điểm tốt: Test ngắn gọn, trong sáng, dễ hiểu hơn
- Điểm chưa tốt: Test vẫn chưa được readable lắm và phần khó hiểu được chuyển vào trong Class Page
III Code test khi bạn áp dụng Fluent Interface
class LoginSpec3 extends BaseTest3{
LoginPage login = getLoginPage();
HomePage home = getHomePage();
@Test
public void admin_login_successfully(){
login.act().inputUsername("giang")
.inputPassword("12345678")
.submit();
home.verify().isRightURL();
}
}Điểm tốt:
- Test dễ đọc hơn chút nữa
- Phần action và verify được thể hiện rõ ràng
Điểm chưa tốt:
- Phần code low-level trở nên nhiều hơn, hơi khó tiếp cận cho người mới

[…] bài 2, code của test sẽ có hình dạng như […]
[…] ← Previous Next → […]