II. NỘI DUNG
3.3.3. Các câu lệnh sử dụng trong Selenium WebDriver
a. Các câu lệnh trình duyệt
Một số câu lệnh thao tác của Selenium WebDriver như trình duyệt như mở, đóng và lấy tiêu đề của trang Web như dưới đây:
- Câu lệnh get
Mục đích: Sử dụng để mở một trang Web mới trong trình duyệt lựa chọn. Cú pháp: drive.get(URL);
Trong đó URL: Là dùng để tải trang, nên sử dụng một url đầy đủ - Câu lệnh để lấy tiêu đề getTitle
Mục đích: Sử dụng để lấy tiêu đề trang web muốn lấy Cú pháp: driver.getTitle();
- Câu lệnh lấy URL hiện tại getCurrentUrl
Mục đích: Câu lệnh này sử dụng để lấy URL của trang hiện tại. Cú pháp: driver.getCurrentUrl();
- Câu lệnh lấy nguồncủa trang Web getPageSource
Mục đích: Câu lệnh này dùng để lấy nguồn của trang được tải cuối cùng. Cú pháp: driver.getPageSource();
b. Các câu lệnh WebElement
Để tương tác với trang Web thì việc đầu tiên cần phải xác định vị trí của cá phần tử trên trang Web, WebDriver cung cấp 2 phương thức “Find Element” and “Find
Phương thức “Find Element” và “Find Elements”
Phương thức “Find Element” và “Find Elements” là trả về đối tượng WebElement, trả về một danh sách WebElement, có thể sẽ trả về danh sách rỗng nếu không có phần tử DOM phù hợp với truy vấn. Phương thức “Find” lấy vị trí hoặc đối tượng truy vấn gọi bằng phương thức “By”
- Tìm phần từ bằng ID: By ID
Mục đích: Tìm vị trí của phần tử bằng ID, nếu tìm được ID phù hợp sẽ trả về vị trí của phần tử, nếu không có phần từ phù hợp với id sẽ xuất hiện
NoSuchElementException Cú pháp: driver.findElement(By.id("")); - Tìm phần tử bằng Name (By Name)
Mục đích: Tìm vị trí của phần tử bằng name, nếu tìm được giá trị name phù hợp sẽ trả về vị trí của phần tử, nếu không có phần từ phù hợp với thuộc tính name sẽ xuất hiện NoSuchElementException.
Cú pháp: driver.findElement(By.name("")); - Tìm phần tử bằng Class Name
Mục đích: Tìm các phần tử dựa trên giá trị của thuộc tính chúng “class”. Cú pháp: driver.findElement(By.className(""));
- Tìm phần tử bằng Link Text
Mục đích: Tìm phần tử thẻ a bằng tên link , Cú pháp: driver.findElement(By.tagName(""));
c. Các câu lệnh điều hướng trình duyệt
- Câu lệnh forward
Mục đích: Dùng để đi đến trang tiếp theo. Cú pháp: driver.navigate().forward();
- Câu lệnh back: Lệnh này dùng để quay lại về trang trước. Cú pháp: driver.navigate().back();
- Câu lệnh refresh
Mục đích: Dùng để làm mới trang hiện tại . Cú pháp: driver.navigate().refresh();
d. Các lệnh switch
Một số trang Web có nhiều khung hoặc nhiều cửa sổ. Selenium WebDriver gán ID cho mỗi cửa sổ ngay khi đối tượng WebDriver được khởi tạo. ID này được gọi là cửa sổ xử lý.
Sau đây là một số câu lệnh switch: - Câu lệnh getWindowHandle
Mục đích: Dùng gọi cửa sổ xử lý của một cửa sổ đang dùng hiện tại. Cú pháp: driver.getWindowHandle();
- Câu lệnh getWindowHandles
Mục đích: Dùng để gọi cửa sổ xử lý (window handle) của nhiều cửa sổ hiện tại. Cú pháp: driver.getWindowHandles();
- Câu lệnh Switch To Window
Mục đích: Dùng hỗ trợ di chuyển giữa các cửa sổ khác nhau thông qua tên của chúng bằng cách sử dụng phương thức “switchTo”.
Cú pháp: driver.switchTo().window("windowName");
e. Các câu lệnh wait - Câu lệnh implicitlyWait
Mục đích: thời gian chờ khi không tìm thấy các phần tử trên trang web.
Cú pháp: drive.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); - Câu lệnh pageLoadTimeout
Mục đích: Thiết lập thời gian chờ cho trang Web hoàn thành tải trước khi báo lỗi. Cú pháp: driver.manage().timeouts().pageLoadTimeout(100, SECONDS);
- Câu lệnh setScriptTimeout
Mục đích: Thiết lập thời gian chờ một kịch bản(script) không đồng bộ để kết thúc việc thực hiện trước khi báo lỗi.
Cú pháp: driver.manage().timeouts().setScriptTimeout(100,SECONDS); - Câu lệnh sleep
Mục đích: Câu lệnh này được sử dụng rất ít, vì nó luôn buộc các trình duyệt chờ đợi một thời gian cụ thể. Cú pháp: thread.sleep(1000);