เลือกปุ่มตัวเลือกและตรวจสอบBox in Selenium
ปุ่มวิทยุเข้า Selenium
สามารถเปิดปุ่มตัวเลือกได้โดยใช้วิธี click()
การใช้ https://demo.guru99.com/test/radio.html สำหรับการฝึกฝน โปรดดูที่ radio1.click() สลับไปที่ปุ่มตัวเลือก “Option1” radio2.click() สลับไปที่ปุ่มตัวเลือก “Option2” โดยปล่อยให้ “Option1” ไม่ถูกเลือก
วิธีการเลือกช่องกาเครื่องหมายใน Selenium
Togglการเปิด/ปิดช่องกาเครื่องหมายก็ทำได้โดยใช้ คลิก() วิธี
โค้ดด้านล่างนี้จะคลิกที่ช่องกาเครื่องหมาย “Keep me logged in” ของ Facebook สองครั้ง จากนั้นจะแสดงผลลัพธ์เป็น TRUE เมื่อเปิดใช้งาน และเป็น FALSE หากปิดใช้งาน
ใช้วิธี isSelected() เพื่อทราบว่าช่องกาเครื่องหมายถูกเปิดหรือปิดอยู่
นี่เป็นอีกตัวอย่างหนึ่ง: https://demo.guru99.com/test/radio.html
กรอกรหัส
นี่คือรหัสการทำงานที่สมบูรณ์
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.*;
public class Form {
public static void main(String[] args) {
// declaration and instantiation of objects/variables
System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://demo.guru99.com/test/radio.html");
WebElement radio1 = driver.findElement(By.id("vfb-7-1"));
WebElement radio2 = driver.findElement(By.id("vfb-7-2"));
//Radio Button1 is selected
radio1.click();
System.out.println("Radio Button Option 1 Selected");
//Radio Button1 is de-selected and Radio Button2 is selected
radio2.click();
System.out.println("Radio Button Option 2 Selected");
// Selecting CheckBox
WebElement option1 = driver.findElement(By.id("vfb-6-0"));
// This will Toggle the Check box
option1.click();
// Check whether the Check box is toggled on
if (option1.isSelected()) {
System.out.println("Checkbox is Toggled On");
} else {
System.out.println("Checkbox is Toggled Off");
}
//Selecting Checkbox and using isSelected Method
driver.get("https://demo.guru99.com/test/facebook.html");
WebElement chkFBPersist = driver.findElement(By.id("persist_box"));
for (int i=0; i<2; i++) {
chkFBPersist.click ();
System.out.println("Facebook Persists Checkbox Status is - "+chkFBPersist.isSelected());
}
//driver.close();
}
}
การแก้ไขปัญหา
หากคุณพบ NoSuchElementException() ขณะค้นหาองค์ประกอบ แสดงว่าไม่พบองค์ประกอบนั้นในเพจ ณ จุดที่ไดรเวอร์เว็บเข้าถึงเพจ
- ตรวจสอบเครื่องระบุตำแหน่งของคุณอีกครั้งโดยใช้ Firepath หรือ Inspect Element ใน Chrome
- ตรวจสอบว่าค่าที่คุณใช้ในโค้ดแตกต่างจากค่าสำหรับองค์ประกอบใน Firepath ทันทีหรือไม่
- คุณสมบัติบางอย่างเป็นแบบไดนามิกสำหรับองค์ประกอบบางส่วน ในกรณีที่คุณพบว่าค่าแตกต่างกันและเปลี่ยนแปลงแบบไดนามิก ให้พิจารณาใช้ By.xpath() หรือ By.cssSelector() ซึ่งเป็นวิธีที่เชื่อถือได้มากกว่าแต่ซับซ้อนกว่า
- บางครั้งอาจเป็นปัญหาเรื่องการรอเช่นกัน เช่น เว็บไดรเวอร์รันโค้ดของคุณก่อนที่เพจจะโหลดเสร็จสมบูรณ์ เป็นต้น
- เพิ่มการรอก่อน findElement() โดยใช้การรอโดยนัยหรือชัดเจน
สรุป
- ตารางด้านล่างสรุปคำสั่งในการเข้าถึงองค์ประกอบแต่ละประเภทที่กล่าวถึงข้างต้น
| ธาตุ | คำสั่ง | Descriptไอออน |
|---|---|---|
| ตรวจสอบ Box, ปุ่ม | คลิก() | ใช้ในการเปิด/ปิดองค์ประกอบ |




