라디오 버튼을 선택하고 체크하세요Box in Selenium

⚡ 스마트 요약

라디오 버튼을 선택하고 체크하세요Box in Selenium 이 튜토리얼에서는 WebDriver를 사용하여 가장 일반적인 폼 컨트롤 두 가지를 자동화하는 기술을 다룹니다. click() 및 isSelected() 메서드를 사용하여 라디오 버튼과 체크박스를 토글하는 방법과 작동 방식을 설명합니다. Java 코드를 공유하고, 깨지기 쉬운 위치 표시기에 대한 문제 해결 팁을 제공합니다.

  • 🔘 라디오 버튼 Toggle: WebElement의 click() 메서드를 사용하여 라디오 버튼을 선택하세요. 다른 옵션을 선택하면 이전 옵션은 자동으로 선택 해제됩니다.
  • ☑️ 체크박스 Toggle: click() 메서드는 체크박스를 켜거나 끄는 기능을 하며, 두 번 호출하면 체크박스가 원래 상태로 돌아갑니다.
  • ✅ 주정부 확인: isSelected()를 호출하여 현재 토글 상태를 확인하고, 선택된 컨트롤에 대해서는 TRUE, 선택되지 않은 컨트롤에 대해서는 FALSE를 반환합니다.
  • 🧪 일 Java 예: 전체 프로그램이 추진합니다. Guru99 데모와 페이스북 지속 로그인 체크박스를 통해 두 가지 흐름을 모두 보여줍니다.
  • 🛠️ 신뢰할 수 있는 위치 찾기 도구: ID가 동적으로 변경될 경우 By.xpath() 또는 By.cssSelector()로 전환하고 NoSuchElementException이 발생하지 않도록 명시적인 대기 시간을 추가하세요.

라디오 버튼을 선택하고 체크하세요Box in Selenium

라디오 버튼 있음 Selenium

라디오 버튼은 다음을 사용하여 켜집니다. click() 메서드는 다른 웹 요소와 마찬가지로 다음과 같습니다. Selenium라디오 그룹에서는 한 번에 하나의 옵션만 활성화할 수 있으므로 두 번째 옵션을 클릭하면 첫 번째 옵션이 자동으로 선택 해제됩니다.

사용 https://demo.guru99.com/test/radio.html 연습 페이지로 활용하시고, 다음 사항에 유의하시기 바랍니다. radio1.click() "옵션1" 라디오 버튼을 선택합니다. 통화 radio2.click() 그런 다음 "옵션1"을 선택하지 않은 상태로 "옵션2"를 선택합니다.

라디오 버튼 선택 Guru99 데모 페이지

체크박스를 선택하는 방법 Selenium

Toggl체크박스를 켜거나 끄는 것도 다음을 사용하여 수행됩니다. click() 아래 코드는 페이스북의 "로그인 상태 유지" 체크박스를 두 번 클릭하고, 체크박스가 활성화되면 TRUE를, 비활성화되면 FALSE를 출력합니다.

Selenium 페이스북에서 '로그인 상태 유지' 확인란을 클릭하면 코드가 실행됩니다.

콘솔 출력: 체크박스 토글 상태 표시

The isSelected() 이 메서드는 체크박스가 켜졌는지 꺼졌는지 확인하는 데 사용되며, 테스트 케이스에서 폼 상태를 검증할 때 중요한 요소입니다.

다음은 또 다른 예시 페이지입니다. https://demo.guru99.com/test/radio.html.

Selenium isSelected()를 사용하여 체크박스 상태를 확인하는 코드

완료 Code 예시

다음은 라디오 버튼 두 개와 페이스북 로그인 유지 체크박스를 모두 토글하는 완전한 작동 코드입니다.

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 and 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 Button 1 is selected
        radio1.click();
        System.out.println("Radio Button Option 1 Selected");

        // Radio Button 1 is de-selected and Radio Button 2 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 checkbox
        option1.click();

        // Check whether the checkbox is toggled on
        if (option1.isSelected()) {
            System.out.println("Checkbox is Toggled On");
        } else {
            System.out.println("Checkbox is Toggled Off");
        }

        // Selecting a Checkbox and using the 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("페이스북 Persists Checkbox Status is - " + chkFBPersist.isSelected());
        }
        // driver.close();
    }
}

문제해결

만나면 NoSuchElementException 요소를 찾는 동안 오류가 발생했다는 것은 WebDriver가 페이지에 접근한 시점에 해당 요소가 존재하지 않았음을 의미합니다. 아래 체크리스트를 사용하여 신속하게 복구하세요.

  1. FirePath 또는 Chrome의 요소 검사를 사용하여 로케이터를 다시 확인하십시오.
  2. 코드에서 사용한 값이 페이지의 해당 요소의 현재 값과 일치하는지 확인하십시오.
  3. 일부 요소는 동적 속성을 가지고 있으며, 이는 사용자가 화면에서 볼 수 있는 것과 유사합니다. 드롭다운 메뉴에서 선택하세요 Selenium 웹드라이버그런 경우에는, By.xpath() or By.cssSelector()이는 더 안정적이지만 약간 더 복잡합니다.
  4. 때로는 타이밍이 문제일 수 있습니다. 웹드라이버가 페이지 로딩이 완료되기 전에 코드를 실행했을 가능성이 있습니다.
  5. 대기 시간을 추가하세요 findElement() 요소가 렌더링될 시간을 주기 위해 암시적 또는 명시적 대기를 사용합니다.

자주 묻는 질문

체크박스 웹 요소에 대해 click() 메서드를 호출하면 체크박스가 선택 해제됩니다. 별도의 선택 해제 메서드는 없습니다. 테스트 로직을 안전하게 유지하려면 체크박스가 현재 선택된 경우에만 선택을 해제하기 위해 클릭하기 전에 isSelected() 메서드를 사용하세요.

`isSelected()` 메서드는 체크박스나 라디오 버튼이 선택되었을 때 `true`를 반환합니다. `isEnabled()` 메서드는 요소가 사용자 입력을 받을 수 있을 때 `true`를 반환합니다. 이 두 메서드는 목적이 다릅니다. `isSelected()`는 상태를 검증하는 반면, `isEnabled()`는 요소가 사용자 입력을 허용하는지 여부를 검증합니다.

findElements() 함수를 By.xpath(“//input[@type='checkbox']”)와 같은 로케이터와 함께 사용하여 모든 체크박스 웹 요소를 가져온 다음, 목록을 순회하면서 isSelected()를 확인하고 선택되지 않은 요소에 대해서만 click()을 호출합니다. 이렇게 하면 이미 선택된 체크박스를 실수로 선택 해제하는 것을 방지할 수 있습니다.

AI 어시스턴트는 위치 지정 전략을 생성하고, ID가 변경될 때 선택기를 자동으로 복구하며, 라디오 버튼 및 체크박스 상태에 대한 어설션을 제안합니다. 또한 AI 도구는 화면 녹화에서 전체 양식 작성 테스트를 자동으로 생성하여 수동 코딩 및 테스트 유지 관리 노력을 줄여줍니다.

네. AI 기반입니다. Selenium 이 도구들은 DOM을 분석하고, 안정적인 속성을 학습하며, 릴리스 간 ID가 변경될 경우 XPath 또는 CSS 선택자를 다시 작성합니다. 이러한 자체 복구 기능 덕분에 UI를 수정할 때마다 수동으로 로케이터를 업데이트하지 않아도 폼 컨트롤 테스트가 통과됩니다.

이 게시물을 요약하면 다음과 같습니다.