Cách chọn giá trị từ danh sách thả xuống trong Selenium
⚡ Tóm tắt thông minh
Chọn giá trị từ menu thả xuống trong Selenium Sử dụng lớp Select chuyên dụng để điều khiển các phần tử HTML SELECT. Lớp này cung cấp các phương thức selectByVisibleText, selectByValue và selectByIndex giúp chọn các tùy chọn một cách chính xác và hỗ trợ các menu thả xuống chọn nhiều mục.

Lớp Select trong Selenium?
Chọn lớp trong Selenium là một lớp trợ giúp từ org.openqa.selenium.support.ui Gói này cho phép WebDriver tương tác với HTML. <select> Nó cung cấp các phương thức để chọn và bỏ chọn các tùy chọn dựa trên văn bản hiển thị, giá trị hoặc chỉ mục, và để phát hiện xem menu thả xuống có chấp nhận nhiều lựa chọn hay không.
Bởi vì Select là một thường xuyên Java trong lớp, bạn tạo một thể hiện với new từ khóa và truyền WebElement trỏ đến <select> gắn thẻ trên trang.
Cách chọn thả xuống trong Selenium
Trước khi xử lý menu thả xuống trong SeleniumCần thực hiện hai bước:
- Nhập gói org.openqa.selenium.support.ui.Select.
- Khởi tạo menu thả xuống dưới dạng
Selectđối tượng trong Selenium WebDriver.
Ví dụ, hãy mở Mercury Trang đăng ký tour (https://demo.guru99.com/test/newtours/register.php) và tìm mục thả xuống “Quốc gia”.
Bước 1) Nhập gói Select.
import org.openqa.selenium.support.ui.Select;
Bước 2) Khai báo phần tử thả xuống làm phiên bản của lớp Chọn. Trong ví dụ bên dưới, đối tượng được đặt tên là drpCountry.
Select drpCountry = new Select(driver.findElement(By.name("country")));
Bước 3) Bắt đầu điều khiển menu thả xuống. Sử dụng bất kỳ phương thức Chọn nào để chọn một tùy chọn. Ví dụ bên dưới chọn “NAM CỰC”:
drpCountry.selectByVisibleText("ANTARCTICA");
Chọn phương pháp trong Selenium
Lớp Select cung cấp một số phương thức để tương tác với các tùy chọn trong menu thả xuống. Năm phương thức phổ biến nhất được mô tả bên dưới.
1) selectByVisibleText() và deselectByVisibleText()
- Chọn hoặc bỏ chọn tùy chọn có văn bản hiển thị khớp với tham số.
- Thông số: Văn bản chính xác được hiển thị cho tùy chọn đó.
Ví dụ:
drpCountry.selectByVisibleText("ANTARCTICA");
2) selectByValue() và deselectByValue()
- Chọn hoặc bỏ chọn tùy chọn có
valueThuộc tính khớp với tham số. - Lưu ý rằng văn bản được hiển thị và
valueCác thuộc tính thường khác nhau, như được minh họa bên dưới. - Thông số: quyền chọn
valuethuộc tính.
Ví dụ:
drpCountry.selectByValue("234");
3) selectByIndex() và deselectByIndex()
- Chọn hoặc bỏ chọn tùy chọn tại vị trí chỉ định. Chỉ số được đánh số từ 0.
- Thông số: Chỉ số nguyên của tùy chọn.
Ví dụ:
drpCountry.selectByIndex(0);
4) isMultiple()
- Hoàn trả
TRUENếu menu thả xuống cho phép chọn nhiều mục cùng lúc, ngược lại thì không.FALSE. - Thông số: không ai.
Ví dụ:
if (drpCountry.isMultiple()) {
// do something here
}
5) deselectAll()
- Xóa tất cả các tùy chọn đã chọn. Chỉ có hiệu lực đối với các menu thả xuống chọn nhiều mục.
- Thông số: không ai.
Ví dụ:
drpCountry.deselectAll();
Hoàn thành Code của các phương pháp được lựa chọn trong Selenium
Sau đây Java Chương trình này minh họa lớp Select trên cả hộp chọn đơn và hộp chọn đa.
package newpackage;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.By;
public class accessDropDown {
public static void main(String[] args) {
System.setProperty("webdriver.gecko.driver", "C:\\geckodriver.exe");
String baseURL = "https://demo.guru99.com/test/newtours/register.php";
WebDriver driver = new FirefoxDriver();
driver.get(baseURL);
// Single-select drop-down
Select drpCountry = new Select(driver.findElement(By.name("country")));
drpCountry.selectByVisibleText("ANTARCTICA");
// Multi-select drop-down
driver.get("http://jsbin.com/osebed/2");
Select fruits = new Select(driver.findElement(By.id("fruits")));
fruits.selectByVisibleText("Banana");
fruits.selectByIndex(1);
}
}
Chọn các mục trong phần tử Chọn nhiều (Multiple SELECT)
selectByVisibleText() Phương pháp này cũng hoạt động trên các menu thả xuống chọn nhiều mục. Ví dụ, hãy sử dụng https://jsbin.com/osebed/2 như là cơ sở URLNó hiển thị một menu thả xuống cho phép chọn nhiều mục cùng một lúc.
Đoạn mã bên dưới chọn hai tùy chọn đầu tiên bằng cách sử dụng selectByVisibleText():
Bảng tham chiếu phương pháp
Bảng này tóm tắt tất cả các phương thức của lớp Select đã được đề cập ở trên để tra cứu nhanh.
| Lệnh | Mô tả Chi tiết |
|---|---|
| selectByVisibleText() / deselectByVisibleText() | Chọn hoặc bỏ chọn một tùy chọn dựa trên văn bản hiển thị của nó. |
| selectByValue() / deselectByValue() | Chọn hoặc bỏ chọn một tùy chọn dựa trên thuộc tính của nó. value thuộc tính. |
| selectByIndex() / deselectByIndex() | Chọn hoặc bỏ chọn một tùy chọn dựa trên chỉ số 0 của nó. |
| isMultiple() | Trả về TRUE nếu menu thả xuống cho phép chọn nhiều mục, ngược lại trả về FALSE. |
| bỏ chọn tất cả() | Bỏ chọn tất cả các tùy chọn đã chọn trước đó trong menu thả xuống đa lựa chọn. |
Để điều khiển các hộp thả xuống, hãy nhập org.openqa.selenium.support.ui.Select Trước tiên hãy đóng gói, sau đó tạo một thể hiện của lớp Select và gọi bất kỳ phương thức nào ở trên.

.png)
.png)
.png)
.png)