Browser Command

Duy Văn | 27/03/2025


Ở bài viết trước chúng ta đã có một test case cơ bản

 
public class GoogleTitleTest {

    @Test
    public void testGoogleHomePageTitle() {
        WebDriver driver = new ChromeDriver();      
        driver.get("https://www.google.com");      

        String expectedTitle = "Google";
        String actualTitle = driver.getTitle();
        assertEquals("Title should be Google", expectedTitle, actualTitle);

        driver.quit();  
    }
}

Nếu bạn để ý, sau khi triển khai object WebDriver, chúng ta đã sử dụng methods get, getTitle và quit. Đây được ọi là các methods của WebDriver hay còn gọi là Browser Command

Xem danh sách methods với editor

Ở bài viết này thì mình sẽ cover:

  • close()
  • get(String arg()):void
  • getCurrentUrl():String
  • getPageSource():String
  • getTitle():String
  • quit():void

Các method này là các method trực tiếp nằm trong WebDriver

get(String arg):void

Method này cơ bản là sẽ mở một trang web trên cửa sổ trình duyệt với đường dẫn được truyền vào


WebDriver driver = new ChromeDriver();
driver.get("https://www.google.com");

Lưu ý một chút, đó là:

  • Method này mở một trang web trên cửa sổ mà chúng ta đang focus vào, tức là khi chúng ta làm việc với nhiều cửa sổ, thì cần phải nắm được cửa sổ nào chúng ta đang sử dụng. Điều này sẽ được phản ánh ở object WebDriver ,mỗi object này tương ứng với một cửa sổ trình duyệt, thực hiện get trên object nào thì cửa sổ tương ứng của object đó sẽ mở trang web
  • Nên sử dụng URL đầy đủ, tức là https://www.google.com chứ không phải là www.google.com. Vấn đề này sẽ nảy sinh khi mà chúng ta thực hiện test trên website / webapp không có SSL, tức là http:// ví dụ như bản stage local, build local của sản phẩm. Nên hình thành thói quen sớm

getTitle():String

Method này sẽ trả về title của trang web mà hiện tại cửa sổ thuộc về object WebDriver đang mở


WebDriver driver = new ChromeDriver();
driver.get("https://www.google.com");
String title = driver.getTitle();
System.out.println(title);

getCurrentUrl():String

Method này sẽ lấy ra URL của trang web hiện tại đang được mở trên cửa sổ trình duyệt thuộc về object WebDriver


WebDriver driver = new ChromeDriver();
driver.get("https://www.google.com");
String url = driver.getCurrentUrl();

Lệnh này hay dùng trong các quá trình kiểm thử liên tục, ví dụ như chúng ta đang test navigation từ trang A sang trang B, nhưng trong quá trình phát triển trang B chưa được code xong, nên phương án verify bước đầu là check URL xem trình duyệt có trỏ tới được URL của trang B hay không là đã đủ để test được navigation rồi

getPageSource():String

Method này trả về source code của cả trang web mà hiện tại cửa sổ trình duyệt thuộc về object đang mở


WebDriver driver = new ChromeDriver();
driver.get("https://www.google.com");
String pageSource = driver.getPageSource();

Method này thật ra rất ít dùng, vì thực tế chúng ta không cần phải động đến source của nó làm gì

close():void

Method này sẽ đóng cửa sổ trình duyệt mà object WebDriver đang mở, nhưng không đóng cửa sổ chính của trình duyệt


WebDriver driver = new ChromeDriver();
driver.get("https://www.google.com");
driver.close();

Tuy nhiên, nếu trang web này là trang duy nhất mà object WebDriver đang mở, thì method này sẽ đóng cả trình duyệt thật

quit():void

Method này sẽ đóng tất cả cửa sổ trình duyệt mà object WebDriver đang mở


WebDriver driver = new ChromeDriver();
driver.get("https://www.google.com");
driver.quit();

Tuy nhiên, nó sẽ đóng cả trình duyệt thật, nên khi chúng ta sử dụng method này, chúng ta cần phải chắc chắn rằng không còn cửa sổ nào khác đang mở trên trình duyệt, hoặc ít nhất quá trình kiểm thử đã hoàn thành

Lưu ý chung cho cả close() và quit() là nó được gọi dựa them object WebDriver, nên nó chỉ có ảnh hưởng đến cửa sổ trình duyệt mà object đó đang mở, của session khác hay của object khác thì không bị ảnh hưởng