Checkbox handling helps you test if checkboxes on a webpage work correctly. It ensures users can select or deselect options as expected.
Testing a signup form where users agree to terms by checking a box.
Verifying multiple filters on a shopping site can be selected or cleared.
Checking if a newsletter subscription checkbox toggles correctly.
Ensuring a 'Remember me' checkbox on login works as intended.
Syntax
Selenium Java
WebElement checkbox = driver.findElement(By.id("checkboxId"));
// To check if checkbox is selected
boolean isSelected = checkbox.isSelected();
// To select checkbox ifnot already selected
if (!isSelected) {
checkbox.click();
}
// To deselect checkbox if selected
if (isSelected) {
checkbox.click();
}
Use isSelected() to check checkbox state before clicking.
Clicking toggles the checkbox state.
Examples
Selects the checkbox named 'subscribe' only if it is not already selected.
Selenium Java
WebElement checkbox = driver.findElement(By.name("subscribe"));
if (!checkbox.isSelected()) {
checkbox.click();
}
Deselects the checkbox for 'terms' if it is currently selected.
Selenium Java
WebElement checkbox = driver.findElement(By.cssSelector("input[type='checkbox'][value='terms']"));
if (checkbox.isSelected()) {
checkbox.click();
}
Sample Program
This test opens a webpage, finds a checkbox by its ID, selects it if not already selected, prints the action, and asserts the checkbox is selected.
Selenium Java
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class CheckboxTest {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "path/to/chromedriver");
WebDriver driver = new ChromeDriver();
try {
driver.get("https://example.com/form");
WebElement checkbox = driver.findElement(By.id("agreeTerms"));
// Check if checkbox is selected
if (!checkbox.isSelected()) {
checkbox.click();
System.out.println("Checkbox was not selected, now selected.");
} else {
System.out.println("Checkbox was already selected.");
}
// Verify checkbox is selected
assert checkbox.isSelected() : "Checkbox should be selected after clicking.";
} finally {
driver.quit();
}
}
}
OutputSuccess
Important Notes
Always check the checkbox state before clicking to avoid unwanted toggling.
Use unique and stable locators like ID or name for checkboxes.
Remember to close the browser after tests to free resources.
Summary
Checkbox handling tests if checkboxes can be selected or deselected correctly.
Use isSelected() to check state before clicking.
Clicking toggles the checkbox state.
Practice
(1/5)
1. What does the isSelected() method do when working with checkboxes in Selenium Java?
easy
A. It unchecks the checkbox if it is selected.
B. It clicks the checkbox to select it.
C. It finds the checkbox element on the page.
D. It checks if the checkbox is currently selected or not.
Solution
Step 1: Understand the purpose of isSelected()
This method returns a boolean indicating if the checkbox is checked (true) or unchecked (false).
Step 2: Differentiate from other actions
Clicking changes state, finding locates elements, but isSelected() only checks state.
Final Answer:
It checks if the checkbox is currently selected or not. -> Option D
Quick Check:
Check state = isSelected() [OK]
Hint: Remember: isSelected() only checks checkbox state [OK]
Common Mistakes:
Confusing isSelected() with click()
Thinking isSelected() changes checkbox state
Using isSelected() to find elements
2. Which of the following is the correct way to click a checkbox located by its ID "subscribe" in Selenium Java?
easy
A. driver.click(By.id("subscribe"));
B. driver.findElement(By.name("subscribe")).click();
C. driver.findElement(By.id("subscribe")).click();
D. driver.findElement(By.id("subscribe")).select();
Solution
Step 1: Identify correct method to find element by ID
Use driver.findElement(By.id("subscribe")) to locate the checkbox by its ID.
Step 2: Use correct method to click checkbox
Use .click() on the found element to toggle checkbox state.
Final Answer:
driver.findElement(By.id("subscribe")).click(); -> Option C
Quick Check:
Find by ID + click() = driver.findElement(By.id("subscribe")).click(); [OK]
Hint: Use findElement(By.id()).click() to toggle checkbox [OK]
Common Mistakes:
Using driver.click() directly
Using wrong locator like By.name instead of By.id
Using non-existent select() method
3. Consider this code snippet:
WebElement checkbox = driver.findElement(By.id("agree"));
if (!checkbox.isSelected()) {
checkbox.click();
}
System.out.println(checkbox.isSelected());
What will be printed if the checkbox was initially unchecked?
medium
A. false
B. true
C. null
D. Throws exception
Solution
Step 1: Check initial checkbox state
The checkbox is initially unchecked, so isSelected() returns false.
Step 2: Click checkbox if not selected
Since it is not selected, checkbox.click() runs, selecting it.
Step 3: Print final state
After clicking, isSelected() returns true, so true is printed.
Final Answer:
true -> Option B
Quick Check:
Unchecked + click = selected = true [OK]
Hint: Click only if not selected to ensure checkbox is checked [OK]
Common Mistakes:
Assuming initial state remains unchanged
Expecting false after click
Confusing isSelected() return values
4. You wrote this code to select a checkbox:
WebElement cb = driver.findElement(By.id("option1"));
if (cb.isSelected()) {
cb.click();
}
But the checkbox remains unselected after running. What is the error?
medium
A. The condition should check if checkbox is NOT selected before clicking.
B. You should use cb.select() instead of cb.click().
C. The locator By.id("option1") is incorrect.
D. You need to use cb.isEnabled() before clicking.
Solution
Step 1: Analyze the condition logic
The code clicks the checkbox only if it is already selected, which unchecks it.
Step 2: Understand desired action
To select the checkbox, click it only if it is NOT selected.
Step 3: Correct the condition
Change condition to if (!cb.isSelected()) { cb.click(); } to select checkbox.
Final Answer:
The condition should check if checkbox is NOT selected before clicking. -> Option A
Quick Check:
Click only if not selected to select [OK]
Hint: Click checkbox only if it is not selected [OK]
Common Mistakes:
Clicking checkbox when already selected
Using non-existent select() method
Ignoring checkbox state before clicking
5. You want to ensure a checkbox with ID "terms" is selected before submitting a form. Which code snippet correctly handles this and avoids unnecessary clicks?
hard
A. WebElement cb = driver.findElement(By.id("terms"));
if (!cb.isSelected()) {
cb.click();
}
// proceed to submit
B. WebElement cb = driver.findElement(By.id("terms"));
cb.click();
// proceed to submit
C. WebElement cb = driver.findElement(By.id("terms"));
if (cb.isSelected()) {
cb.click();
}
// proceed to submit
D. WebElement cb = driver.findElement(By.id("terms"));
cb.isSelected();
// proceed to submit
Solution
Step 1: Check checkbox state before clicking
Use isSelected() to verify if checkbox is already selected.
Step 2: Click only if not selected
Click checkbox only when it is not selected to avoid toggling off.
Step 3: Avoid unnecessary clicks
WebElement cb = driver.findElement(By.id("terms"));
if (!cb.isSelected()) {
cb.click();
}
// proceed to submit correctly implements this logic, ensuring checkbox is selected before submit.
Final Answer:
Code that clicks checkbox only if not selected before submit. -> Option A
Quick Check:
Check state, click if false, then submit [OK]
Hint: Click checkbox only if not selected to ensure correct state [OK]
Common Mistakes:
Clicking checkbox unconditionally causing toggle off
Clicking checkbox when already selected
Ignoring checkbox state before submit
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.