Beginner 10 min 7 scenarios

Radio & Checkbox Automation Practice

Master radio button and checkbox interactions in Selenium & Playwright — selecting, verifying state, detecting disabled elements, and spotting bugs in grouped inputs.

Scenario 1: Select Any One Radio Button

Scenario 2: Confirm Only One Radio Can Be Selected

Scenario 3: Find the Bug

Scenario 4: Find Which Radio Is Selected

Scenario 5: Disabled Radio ButtonDISABLED

Scenario 6: Check If Checkbox Is Selected

Scenario 7: Accept Terms and Conditions

What You'll Learn

Selenium (Java)

  • click()
  • isSelected()
  • getAttribute("checked")
  • findElements()
  • isEnabled()
Tutorial video coming soon

Test Cases

Introduction

Radio buttons and checkboxes are common form controls:

  • Radio buttons — only one option in a group can be selected at a time
  • Checkboxes — multiple options can be checked simultaneously

Key automation tasks:

  1. Click to select a radio button or checkbox
  2. Verify it is selected
  3. Verify a disabled radio/checkbox cannot be selected
  4. Uncheck a checked checkbox

Key Methods Summary

Action Selenium (Java) Playwright (JS) Playwright (Python)
Select radio / check element.click() locator.check() locator.check()
Uncheck checkbox element.click() (if checked) locator.uncheck() locator.uncheck()
Is selected isSelected() toBeChecked() to_be_checked()
Is not selected !isSelected() not.toBeChecked() not_to_be_checked()
Is disabled !isEnabled() toBeDisabled() to_be_disabled()

1. Select a radio button

Selenium (Java)

driver.findElement(By.id("gender-male")).click();
assertTrue(driver.findElement(By.id("gender-male")).isSelected());

Playwright (JS)

await page.locator("#gender-male").check();
await expect(page.locator("#gender-male")).toBeChecked();

Playwright (Python)

page.locator("#gender-male").check()
expect(page.locator("#gender-male")).to_be_checked()

2. Confirm only one radio can be selected in a group

Selenium (Java)

driver.findElement(By.id("gender-male")).click();
driver.findElement(By.id("gender-female")).click();
 
// Male should now be deselected
assertFalse(driver.findElement(By.id("gender-male")).isSelected());
assertTrue(driver.findElement(By.id("gender-female")).isSelected());

Playwright (JS)

await page.locator("#gender-male").check();
await page.locator("#gender-female").check();
 
await expect(page.locator("#gender-male")).not.toBeChecked();
await expect(page.locator("#gender-female")).toBeChecked();

Playwright (Python)

page.locator("#gender-male").check()
page.locator("#gender-female").check()
 
expect(page.locator("#gender-male")).not_to_be_checked()
expect(page.locator("#gender-female")).to_be_checked()

3. Check a checkbox

Selenium (Java)

WebElement checkbox = driver.findElement(By.id("rememberMe"));
if (!checkbox.isSelected()) {
    checkbox.click();
}
assertTrue(checkbox.isSelected());

Playwright (JS)

await page.locator("#rememberMe").check();
await expect(page.locator("#rememberMe")).toBeChecked();

Playwright (Python)

page.locator("#rememberMe").check()
expect(page.locator("#rememberMe")).to_be_checked()

4. Uncheck a checkbox

Selenium (Java)

WebElement checkbox = driver.findElement(By.id("acceptTerms"));
if (checkbox.isSelected()) {
    checkbox.click();
}
assertFalse(checkbox.isSelected());

Playwright (JS)

await page.locator("#acceptTerms").uncheck();
await expect(page.locator("#acceptTerms")).not.toBeChecked();

Playwright (Python)

page.locator("#acceptTerms").uncheck()
expect(page.locator("#acceptTerms")).not_to_be_checked()

5. Verify a radio button is disabled

Selenium (Java)

WebElement disabledRadio = driver.findElement(By.id("gender-other"));
assertFalse(disabledRadio.isEnabled());

Playwright (JS)

await expect(page.locator("#gender-other")).toBeDisabled();

Playwright (Python)

expect(page.locator("#gender-other")).to_be_disabled()

6. Count all radio buttons in a group

Selenium (Java)

List<WebElement> radios = driver.findElements(By.cssSelector("input[name='gender']"));
System.out.println("Total options: " + radios.size());

Playwright (JS)

const count = await page.locator("input[name='gender']").count();
console.log("Total options:", count);

Playwright (Python)

count = page.locator("input[name='gender']").count()
print("Total options:", count)

📄 Also Read: Top 10 Best Automation Practice Website