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:
- WebBrowser: Các command để tương tác vs browser
- WebElement: Các command để tương tác vs element ([Java – Webdriver 16] – WebElement API commands)
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ề