วิธีเลือกปุ่มตัวเลือกและตรวจสอบBox in Selenium

ปุ่มวิทยุเข้า Selenium

สามารถเปิดปุ่มตัวเลือกได้โดยใช้วิธี click()

การใช้ https://demo.guru99.com/test/radio.html สำหรับการฝึกฝน โปรดดูที่ radio1.click() สลับไปที่ปุ่มตัวเลือก “Option1” radio2.click() สลับไปที่ปุ่มตัวเลือก “Option2” โดยปล่อยให้ “Option1” ไม่ถูกเลือก

ปุ่มวิทยุเข้า Selenium

วิธีการเลือกช่องกาเครื่องหมายใน Selenium

Togglการเปิด/ปิดช่องกาเครื่องหมายก็ทำได้โดยใช้ คลิก() วิธี

โค้ดด้านล่างนี้จะคลิกที่ช่องกาเครื่องหมาย “Keep me logged in” ของ Facebook สองครั้ง จากนั้นจะแสดงผลลัพธ์เป็น TRUE เมื่อเปิดใช้งาน และเป็น FALSE หากปิดใช้งาน

เลือกช่องกาเครื่องหมายใน Selenium

เลือกช่องกาเครื่องหมายใน Selenium

ใช้วิธี isSelected() เพื่อทราบว่าช่องกาเครื่องหมายถูกเปิดหรือปิดอยู่

นี่เป็นอีกตัวอย่างหนึ่ง: https://demo.guru99.com/test/radio.html

เลือกช่องกาเครื่องหมายใน Selenium

กรอกรหัส

นี่คือรหัสการทำงานที่สมบูรณ์

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() ขณะค้นหาองค์ประกอบ แสดงว่าไม่พบองค์ประกอบนั้นในเพจ ณ จุดที่ไดรเวอร์เว็บเข้าถึงเพจ

  1. ตรวจสอบเครื่องระบุตำแหน่งของคุณอีกครั้งโดยใช้ Firepath หรือ Inspect Element ใน Chrome
  2. ตรวจสอบว่าค่าที่คุณใช้ในโค้ดแตกต่างจากค่าสำหรับองค์ประกอบใน Firepath ทันทีหรือไม่
  3. คุณสมบัติบางอย่างเป็นแบบไดนามิกสำหรับองค์ประกอบบางส่วน ในกรณีที่คุณพบว่าค่าแตกต่างกันและเปลี่ยนแปลงแบบไดนามิก ให้พิจารณาใช้ By.xpath() หรือ By.cssSelector() ซึ่งเป็นวิธีที่เชื่อถือได้มากกว่าแต่ซับซ้อนกว่า
  4. บางครั้งอาจเป็นปัญหาเรื่องการรอเช่นกัน เช่น เว็บไดรเวอร์รันโค้ดของคุณก่อนที่เพจจะโหลดเสร็จสมบูรณ์ เป็นต้น
  5. เพิ่มการรอก่อน findElement() โดยใช้การรอโดยนัยหรือชัดเจน

สรุป

  • ตารางด้านล่างสรุปคำสั่งในการเข้าถึงองค์ประกอบแต่ละประเภทที่กล่าวถึงข้างต้น
ธาตุ คำสั่ง Descriptไอออน
ตรวจสอบ Box, ปุ่ม คลิก() ใช้ในการเปิด/ปิดองค์ประกอบ