Hướng dẫn sử dụng WebBrowser API

Thông thường để cho dễ hiểu mình hay chia Selenium WebDriver thành 2 phân loại command:

Khởi tạo 1 biến driver để truy cập vào các method (API) của WebDriver như sau:

Các method thường sử dùng cho WebBrowser được đánh số từ 1->13 – có kiểu dữ liệu là WebDriver

  • 1 – driver.get(“…”);
    • Chức năng: Mở 1 url của app bất kì
    • Khai báo: driver.get(“https://automationfc.com”);
    • Tham số: 1 biến String vs value là URL bất kì
    • Kiểu dữ liệu trả về: void (ko cần trả về)
    • Lưu ý: Hàm get duy nhất mà ko cần trả về giá trị

  • 2 – driver.getCurrentUrl();
    • Chức năng: Trả về giá trị URL của page hiện tại
    • Khai báo: String homePageUrl = driver.getCurrentUrl();
    • Mục đích: Sử dụng biến homePageUrl để verify với requirement
    • Tham số: Không có tham số truyền vào
    • Kiểu dữ liệu trả về: String

  • 3 – driver.getTitle();
    • Chức năng: Trả về giá trị title của page hiện tại
    • Khai báo:  String homePageTitle = driver.getTitle();
    • Mục đích: Sử dụng biến homePageTitle để verify với requirement
    • Tham số: Không có tham số truyền vào
    • Kiểu dữ liệu trả về: String

  • 4 – driver.getPageSource();
    • Chức năng: Trả về giá trị là toàn bộ source code của page hiện tại
    • Khai báo:  String pageSource = driver.getPageSource();
    • Mục đích: Sử dụng biến pageSource để verify có chứa text mong muốn hay ko
    • Tham số: Không có tham số truyền vào
    • Kiểu dữ liệu trả về: String

  • 5 – driver.getWindowHandle();
    • Chức năng: Trả về giá trị là GUID của page hiện tại
    • Khai báo:  String parentID = driver.getWindowHandle();
    • Mục đích: Sử dụng biến parentID như là 1 tham số để switch qua windows mới hoặc close all windows ngoại trừ parent windows
    • Tham số: Không có tham số truyền vào
    • Kiểu dữ liệu trả về: String

  • 6 – driver.getWindowHandles();
    • Chức năng: Trả về giá trị là GUID của tất cả các page hiện tại
    • Khai báo:  Set<String> windows = driver.getWindowHandles();
    • Mục đích: Sử dụng biến windows duyệt qua từng window ID để switch vào đúng windows cần thao tác
    • Tham số: Không có tham số truyền vào
    • Kiểu dữ liệu trả về: String

  • 7 – driver.close();
    • Chức năng: Đóng window/tab/page
    • Khai báo:  driver.close();
    • Mục đích:
      • nếu có 1 window/tab/page thì sẽ đóng luôn browser
      • nếu nhiều hơn 1 window/tab/page thì chỉ đóng cái đang active
    • Tham số: Không có tham số truyền vào
    • Kiểu dữ liệu trả về: Không có giá trị trả về

  • 8 – driver.quit();
    • Chức năng: Đóng window/tab/page
    • Khai báo:  driver.quit();
    • Mục đích: Đóng toàn bộ các window/tab/page hiện tại
    • Tham số: Không có tham số truyền vào
    • Kiểu dữ liệu trả về: Không có giá trị trả về

  • 9 – driver.manage().timeouts().implicitlyWait(long number, TimeUnit.SECONDS);
    • Chức năng: Wait ngầm định
    • Khai báo:  driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    • Mục đích: 
      • Wait cho page được render thành công sau 30s
      • Nếu sau 30s vẫn chưa xong thì sẽ throw ra exception
      • Phạm vi ảnh hưởng: findElement/ findElements
    • Tham số: timeout (long number, TimeUnit.SECONDS)
    • Kiểu dữ liệu trả về: Không có giá trị trả về

  • 10 – driver.manage().window().maximize();
    • Chức năng: Phóng to cửa sổ trình duyệt
    • Khai báo:  driver.manage().window().maximize();
    • Mục đích: 
      • Sau khi bật trình duyệt – phóng to cửa sổ để thao tác như real user
    • Tham số: Không có tham số truyền vào
    • Kiểu dữ liệu trả về: Không có giá trị trả về

  • 11 – driver.navigate().back()/ forward()/ refresh()
    • Chức năng: Giả lập lại hành động back/ chuyển tiếp/ tải lại trang
    • Khai báo:  driver.navigate().back() | driver.navigate().forward() | driver.navigate().refresh();
    • Mục đích: 
      • Back về trang trước đó/ chuyển tiếp tới trang trước đó/ tải lại trang hiện tại
    • Tham số: Không có tham số truyền vào
    • Kiểu dữ liệu trả về: Không có giá trị trả về