วิธีการเลือกค่าจากเมนูแบบดรอปดาวน์ใน Selenium
⚡ สรุปอย่างชาญฉลาด
เลือกค่าจากเมนูแบบดรอปดาวน์ใน Selenium ใช้คลาส Select เฉพาะเพื่อควบคุมองค์ประกอบ HTML SELECT คลาสนี้มีเมธอด selectByVisibleText, selectByValue และ selectByIndex ที่ใช้เลือกตัวเลือกได้อย่างแม่นยำและรองรับดรอปดาวน์แบบเลือกหลายรายการ

Select Class คืออะไรใน Selenium?
การขอ เลือกชั้นเรียนใน Selenium เป็นคลาสตัวช่วยจาก org.openqa.selenium.support.ui แพ็กเกจที่ช่วยให้ WebDriver สามารถโต้ตอบกับ HTML ได้ <select> องค์ประกอบต่างๆ โดยมีเมธอดสำหรับเลือกและยกเลิกการเลือกตัวเลือกโดยใช้ข้อความที่มองเห็นได้ ค่า หรือดัชนี รวมถึงตรวจจับว่าเมนูแบบดรอปดาวน์ยอมรับการเลือกหลายรายการหรือไม่
เพราะ Select เป็นประจำ Java คลาส คุณสร้างอินสแตนซ์ด้วย new คีย์เวิร์ดและส่ง WebElement ที่ชี้ไปยัง <select> แท็กบนหน้า
วิธีเลือกเมนูแบบเลื่อนลง Selenium
ก่อนที่จะจัดการกับเมนูแบบดรอปดาวน์ใน Seleniumต้องดำเนินการสองขั้นตอนดังนี้:
- นำเข้าแพ็คเกจ org.openqa.selenium.support.ui เลือก.
- สร้างอินสแตนซ์ของดรอปดาวน์เป็น
Selectวัตถุใน Selenium เว็บไดร์เวอร์
ตัวอย่างเช่น เปิด Mercury หน้าลงทะเบียนทัวร์ (https://demo.guru99.com/test/newtours/register.php) แล้วเลือกเมนูแบบเลื่อนลง “ประเทศ”
ขั้นตอนที่ 1) นำเข้าแพ็กเกจ Select
import org.openqa.selenium.support.ui.Select;
ขั้นตอนที่ 2) ประกาศองค์ประกอบแบบเลื่อนลงเป็นอินสแตนซ์ของคลาส Select ในตัวอย่างด้านล่าง อินสแตนซ์มีชื่อว่า drpCountry.
Select drpCountry = new Select(driver.findElement(By.name("country")));
ขั้นตอนที่ 3) เริ่มควบคุมเมนูแบบดรอปดาวน์ ใช้เมธอด Select ใดก็ได้เพื่อเลือกตัวเลือก ตัวอย่างด้านล่างเลือก “ANTARCTICA”:
drpCountry.selectByVisibleText("ANTARCTICA");
เลือกวิธีการใน Selenium
คลาส Select มีเมธอดหลายวิธีในการโต้ตอบกับตัวเลือกแบบดรอปดาวน์ โดยห้าวิธีที่ใช้บ่อยที่สุดจะอธิบายไว้ด้านล่าง
1) selectByVisibleText() และ deselectByVisibleText()
- เลือกหรือยกเลิกการเลือกตัวเลือกที่มีข้อความที่แสดงตรงกับพารามิเตอร์
- พารามิเตอร์: ข้อความที่แสดงสำหรับตัวเลือกนั้นอย่างถูกต้อง
ตัวอย่าง:
drpCountry.selectByVisibleText("ANTARCTICA");
2) selectByValue() และ deselectByValue()
- เลือกหรือยกเลิกการเลือกตัวเลือกที่มี
valueคุณสมบัติตรงกับพารามิเตอร์ - โปรดทราบว่าข้อความที่แสดงและ
valueคุณลักษณะมักจะแตกต่างกัน ดังแสดงด้านล่าง - พารามิเตอร์: ตัวเลือก
valueคุณลักษณะ
ตัวอย่าง:
drpCountry.selectByValue("234");
3) selectByIndex() และ deselectByIndex()
- เลือกหรือยกเลิกการเลือกตัวเลือกที่ดัชนีที่กำหนด ดัชนีเริ่มต้นที่ศูนย์
- พารามิเตอร์: ดัชนีจำนวนเต็มของตัวเลือก
ตัวอย่าง:
drpCountry.selectByIndex(0);
4) isMultiple()
- คืนสินค้า
TRUEหากเมนูแบบดรอปดาวน์อนุญาตให้เลือกหลายรายการพร้อมกันได้ มิเช่นนั้นจะไม่อนุญาตให้เลือกหลายรายการพร้อมกันFALSE. - พารามิเตอร์: ไม่มี.
ตัวอย่าง:
if (drpCountry.isMultiple()) {
// do something here
}
5) deselectAll()
- ล้างตัวเลือกที่เลือกทั้งหมด ใช้ได้เฉพาะกับเมนูแบบดรอปดาวน์ที่มีการเลือกหลายรายการเท่านั้น
- พารามิเตอร์: ไม่มี.
ตัวอย่าง:
drpCountry.deselectAll();
สมบูรณ์ Code ของวิธีการเลือกใน Selenium
ดังต่อไปนี้ Java โปรแกรมนี้สาธิตการใช้งานคลาส Select บนเมนูแบบดรอปดาวน์ทั้งแบบเลือกรายการเดียวและแบบเลือกหลายรายการ
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);
}
}
การเลือกรายการในองค์ประกอบการเลือกหลายรายการ
การขอ selectByVisibleText() วิธีการนี้ยังใช้ได้กับเมนูแบบดรอปดาวน์ที่มีการเลือกหลายรายการ ตัวอย่างเช่น ใช้ https://jsbin.com/osebed/2 เป็นฐาน URLมันแสดงเมนูแบบดรอปดาวน์ที่สามารถเลือกได้หลายรายการพร้อมกัน
โค้ดด้านล่างนี้เลือกตัวเลือกสองข้อแรกโดยใช้ selectByVisibleText():
ตารางอ้างอิงวิธีการ
ตารางนี้สรุปวิธีการทั้งหมดของคลาส Select ที่กล่าวถึงข้างต้น เพื่อให้ค้นหาได้ง่ายและรวดเร็ว
| คำสั่ง | Descriptไอออน |
|---|---|
| selectByVisibleText() / deselectByVisibleText() | เลือกหรือยกเลิกการเลือกตัวเลือกโดยใช้ข้อความที่แสดง |
| selectByValue() / deselectByValue() | เลือกหรือยกเลิกการเลือกตัวเลือกโดยใช้ตัวเลือกนั้น value คุณลักษณะ |
| selectByIndex() / deselectByIndex() | เลือกหรือยกเลิกการเลือกตัวเลือกโดยใช้ดัชนีแบบนับศูนย์ |
| isMultiple () | ส่งคืนค่า TRUE หากเมนูแบบดรอปดาวน์อนุญาตให้เลือกได้หลายรายการ มิเช่นนั้นจะส่งคืนค่า FALSE |
| ยกเลิกการเลือกทั้งหมด() | ยกเลิกการเลือกตัวเลือกทั้งหมดที่เคยเลือกไว้ก่อนหน้านี้ในเมนูแบบดรอปดาวน์ที่มีหลายตัวเลือก |
ในการควบคุมกล่องดรอปดาวน์ ให้นำเข้า org.openqa.selenium.support.ui.Select สร้างแพ็กเกจก่อน จากนั้นสร้างอินสแตนซ์ Select และเรียกใช้เมธอดใดก็ได้จากด้านบน

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