Chọn nút radio và kiểm traBox in Selenium

Nút radio trong Selenium

Nút Radio cũng có thể được bật bằng cách sử dụng phương thức click().

Sử dụng https://demo.guru99.com/test/radio.html để thực hành, hãy xem cách bật tắt radio1.click() trên nút radio “Option1”. radio2.click() bật nút radio “Option2” và bỏ chọn “Option1”.

Nút radio trong Selenium

Cách chọn hộp kiểm trong Selenium

Togglviệc bật/tắt hộp kiểm cũng được thực hiện bằng cách sử dụng nhấp chuột() phương pháp.

Mã bên dưới sẽ nhấp vào hộp kiểm "Giữ tôi đăng nhập" của Facebook hai lần và sau đó xuất kết quả là ĐÚNG khi hộp kiểm được bật và SAI nếu hộp kiểm được tắt.

Chọn hộp kiểm trong Selenium

Chọn hộp kiểm trong Selenium

Phương thức isSelected() được sử dụng để biết Checkbox được bật hay tắt.

Đây là một ví dụ khác: https://demo.guru99.com/test/radio.html

Chọn hộp kiểm trong Selenium

Hoàn thành mã

Đây là mã làm việc hoàn chỉnh

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

Xử lý sự cố

Nếu bạn gặp phải NoSuchElementException() trong khi tìm phần tử, điều đó có nghĩa là phần tử đó không được tìm thấy trong trang tại thời điểm trình điều khiển Web truy cập trang.

  1. Kiểm tra lại công cụ định vị của bạn bằng Firepath hoặc Kiểm tra phần tử trong Chrome.
  2. Kiểm tra xem giá trị bạn sử dụng trong mã có khác với giá trị cho phần tử trong Firepath hiện tại hay không.
  3. Một số thuộc tính là động đối với một số phần tử. Trong trường hợp bạn thấy giá trị khác nhau và thay đổi động, hãy cân nhắc sử dụng By.xpath() hoặc By.cssSelector() là những cách đáng tin cậy hơn nhưng phức tạp hơn.
  4. Đôi khi, đó cũng có thể là vấn đề chờ đợi, tức là trình điều khiển Web đã thực thi mã của bạn ngay cả trước khi trang được tải hoàn toàn, v.v.
  5. Thêm thời gian chờ trước findElement() bằng cách sử dụng thời gian chờ tiềm ẩn hoặc rõ ràng.

Tổng kết

  • Bảng dưới đây tóm tắt các lệnh để truy cập từng loại phần tử đã thảo luận ở trên
Yếu tố Lệnh Mô tả Chi tiết
kiểm tra Box, Nút radio nhấp chuột() được sử dụng để bật/tắt phần tử