Cách chọn giá trị từ danh sách thả xuống trong Selenium

Cách chọn thả xuống trong Selenium

Sau đây là quy trình từng bước về cách chọn giá trị từ danh sách thả xuống trong Selenium:

Trước khi xử lý thả xuống trong Selenium và kiểm soát các hộp thả xuống, chúng ta phải thực hiện hai điều sau:

  1. Nhập gói org.openqa.selenium.support.ui.Select
  2. Khởi tạo hộp thả xuống như một đối tượng, Chọn trong Selenium webdriver

Như một ví dụ, đi đến Mercury Trang đăng ký tour (https://demo.guru99.com/test/newtours/register.php) và chú ý hộp thả xuống “Quốc gia” ở đó.

Chọn thả xuống trong Selenium

Bước 1) Nhập gói “Chọn”.

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, chúng tôi đặt tên phiên bản này là “drpCountry”.

Select drpCountry = new Select(driver.findElement(By.name("country")));

Bước 3) Bắt đầu kiểm soát nó.

Bây giờ chúng ta có thể bắt đầu kiểm soát “drpCountry” bằng cách sử dụng bất kỳ phương thức Chọn có sẵn nào để chọn danh sách thả xuống trong Selenium. Mã mẫu bên dưới sẽ chọn tùy chọn “ANTARCTICA”.

drpCountry.selectByVisibleText("ANTARCTICA");

Chọn lớp trong Selenium

Chọn lớp trong Selenium là một phương pháp được sử dụng để triển khai thẻ CHỌN HTML. Thẻ chọn html cung cấp các phương thức trợ giúp để chọn và bỏ chọn các phần tử. Lớp Select là một lớp thông thường nên từ khóa New được sử dụng để tạo đối tượng của nó và nó chỉ định vị trí thành phần web.

Chọn phương pháp trong Selenium

Sau đây là những phương pháp phổ biến nhất được sử dụng trên Selenium danh sách thả xuống.

#1) selectByVisibleText() và deselectByVisibleText()

  • Chọn/bỏ chọn tùy chọn hiển thị văn bản khớp với tham số.
  • Thông số: Văn bản được hiển thị chính xác của một tùy chọn cụ thể

Ví dụ:

drpCountry.selectByVisibleText("ANTARCTICA");

#2) selectByValue() và deselectByValue()

  • Chọn/bỏ chọn tùy chọn có thuộc tính “giá trị” khớp với tham số đã chỉ định.
  • Hãy nhớ rằng không phải tất cả các tùy chọn thả xuống đều có cùng văn bản và “giá trị”, như trong ví dụ bên dưới.
  • Thông số: giá trị của thuộc tính “giá trị”

Ví dụ:

ChọnByValue và bỏ chọn theovalue

drpCountry.selectByValue("234");

#3) selectByIndex() và deselectByIndex()

  • Chọn/bỏ chọn tùy chọn tại chỉ mục đã cho.
  • Thông số: chỉ số của tùy chọn được chọn.

Ví dụ:

drpCountry.selectByIndex(0);

#4) isMultiple()

  • Trả về TRUE nếu phần tử thả xuống cho phép nhiều lựa chọn cùng một lúc; FALSE nếu không.
  • Thông số: Không cần thiết

Ví dụ

if (drpCountry.isMultiple())
{
//do something here
}

#5) bỏ chọnAll()

  • Xóa tất cả các mục đã chọn. Điều này chỉ hợp lệ khi phần tử thả xuống hỗ trợ nhiều lựa chọn.
  • Thông số: Không cần thiết

Ví dụ:

drpCountry.deselectAll();

Mã hoàn chỉnh của các phương pháp chọn trong Selenium

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);

		Select drpCountry = new Select(driver.findElement(By.name("country")));
		drpCountry.selectByVisibleText("ANTARCTICA");

		//Selecting Items in a Multiple SELECT elements
		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ử Multiple SELECT

Chúng tôi cũng có thể sử dụng selectByVisibleText() phương pháp chọn nhiều tùy chọn trong phần tử multi SELECT. Để làm ví dụ, chúng ta sẽ lấy https://jsbin.com/osebed/2 làm URL cơ sở. Nó chứa một hộp thả xuống cho phép nhiều lựa chọn cùng một lúc.

Chọn các mục trong một phần tử nhiều lựa chọn

Mã bên dưới sẽ chọn hai tùy chọn đầu tiên bằng phương thức selectByVisibleText().

Chọn các mục trong một phần tử nhiều lựa chọn

Tổng kết

Lệnh Mô tả
selectByVisibleText()/

bỏ chọnByVisibleText()

chọn/bỏ chọn một tùy chọn theo văn bản được hiển thị của nó
selectByValue()/

bỏ chọnByValue()

chọn/bỏ chọn một tùy chọn theo giá trị của thuộc tính “giá trị” của nó
selectByIndex()/

bỏ chọnByIndex()

chọn/bỏ chọn một tùy chọn theo chỉ mục của nó
isMultiple() trả về TRUE nếu phần tử thả xuống cho phép nhiều lựa chọn cùng một lúc; FALSE nếu không
bỏ chọn tất cả() bỏ chọn tất cả các tùy chọn đã chọn trước đó

Để kiểm soát hộp thả xuống, trước tiên bạn phải nhập gói org.openqa.selenium.support.ui.Select rồi tạo một thể hiện Select.

Đọc thêm Xem tiếp