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:
- Click to select a radio button or checkbox
- Verify it is selected
- Verify a disabled radio/checkbox cannot be selected
- 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