Bird
Raised Fist0
Selenium Javatesting~20 mins

Checking state (isDisplayed, isEnabled, isSelected) in Selenium Java - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
State Checker Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of isDisplayed() for a hidden element?
Consider a Selenium WebDriver test where the following code is executed:

WebElement hiddenElement = driver.findElement(By.id("hiddenDiv"));
boolean visible = hiddenElement.isDisplayed();
System.out.println(visible);

The element with id "hiddenDiv" exists in the DOM but has CSS style display:none;. What will be printed?
Selenium Java
WebElement hiddenElement = driver.findElement(By.id("hiddenDiv"));
boolean visible = hiddenElement.isDisplayed();
System.out.println(visible);
Afalse
Btrue
CNoSuchElementException
DStaleElementReferenceException
Attempts:
2 left
💡 Hint
An element with display:none is present but not visible on the page.
❓ assertion
intermediate
1:30remaining
Which assertion correctly verifies a button is enabled?
You want to write a JUnit assertion to check that a button with id "submitBtn" is enabled before clicking it. Which assertion is correct?
Selenium Java
WebElement submitBtn = driver.findElement(By.id("submitBtn"));
AassertFalse(submitBtn.isSelected());
BassertTrue(submitBtn.isEnabled());
CassertFalse(submitBtn.isEnabled());
DassertTrue(submitBtn.isDisplayed());
Attempts:
2 left
💡 Hint
Enabled means the element can be interacted with.
🔧 Debug
advanced
2:30remaining
Why does isSelected() return false for a checked checkbox?
Given the code:

WebElement checkbox = driver.findElement(By.id("agreeTerms"));
boolean selected = checkbox.isSelected();
System.out.println(selected);

The checkbox is visibly checked on the page, but the output is false. What is the most likely cause?
Selenium Java
WebElement checkbox = driver.findElement(By.id("agreeTerms"));
boolean selected = checkbox.isSelected();
System.out.println(selected);
AThe locator finds a different element, not the checkbox input
BThe checkbox is disabled, so isSelected() returns false
CisSelected() only works for radio buttons, not checkboxes
DThe checkbox is inside an iframe and not switched to it
Attempts:
2 left
💡 Hint
Check if the element found is the actual input element representing the checkbox.
🧠 Conceptual
advanced
1:30remaining
Which Selenium method checks if a radio button is selected?
You want to verify if a radio button is selected in your test. Which method should you use?
AisDisplayed()
BisVisible()
CisSelected()
DisEnabled()
Attempts:
2 left
💡 Hint
Think about the state that indicates selection for inputs like radio buttons and checkboxes.
❓ framework
expert
3:00remaining
How to wait until a button is enabled before clicking in Selenium Java?
You want to wait up to 10 seconds until a button with id "saveBtn" becomes enabled before clicking it. Which code snippet correctly implements this using WebDriverWait?
AThread.sleep(10000); driver.findElement(By.id("saveBtn")).click();
Bnew WebDriverWait(driver, Duration.ofSeconds(10)).until(driver -> driver.findElement(By.id("saveBtn")).isDisplayed()); driver.findElement(By.id("saveBtn")).click();
Cnew WebDriverWait(driver, Duration.ofSeconds(10)).until(ExpectedConditions.visibilityOfElementLocated(By.id("saveBtn"))); driver.findElement(By.id("saveBtn")).click();
Dnew WebDriverWait(driver, Duration.ofSeconds(10)).until(ExpectedConditions.elementToBeClickable(By.id("saveBtn"))); driver.findElement(By.id("saveBtn")).click();
Attempts:
2 left
💡 Hint
Look for a condition that waits for the element to be clickable (visible and enabled).

Practice

(1/5)
1. Which Selenium WebDriver method would you use to check if a button is visible on the web page?
easy
A. getText()
B. isEnabled()
C. isSelected()
D. isDisplayed()

Solution

  1. Step 1: Understand the purpose of isDisplayed()

    This method checks if an element is visible on the page, meaning it is rendered and not hidden.
  2. Step 2: Compare with other methods

    isEnabled() checks if the element can be interacted with, isSelected() checks selection state, and getText() returns text content, so they don't check visibility.
  3. Final Answer:

    isDisplayed() -> Option D
  4. Quick Check:

    Visibility check = isDisplayed() [OK]
Hint: Visibility means use isDisplayed() method [OK]
Common Mistakes:
  • Confusing isDisplayed() with isEnabled()
  • Using isSelected() for visibility
  • Thinking getText() checks visibility
2. Which of the following is the correct syntax to check if a checkbox element is selected in Selenium Java?
easy
A. checkbox.isSelected();
B. checkbox.isDisplayed();
C. checkbox.isEnabled();
D. checkbox.getSelected();

Solution

  1. Step 1: Recall the method to check selection state

    The correct method to check if a checkbox or radio button is selected is isSelected().
  2. Step 2: Verify syntax correctness

    checkbox.isSelected(); is valid Java syntax. getSelected() does not exist, and the others check different states.
  3. Final Answer:

    checkbox.isSelected(); -> Option A
  4. Quick Check:

    Check selection = isSelected() [OK]
Hint: Use isSelected() to check checkbox state [OK]
Common Mistakes:
  • Using getSelected() which is invalid
  • Confusing isDisplayed() with isSelected()
  • Using isEnabled() to check selection
3. Given the following code snippet, what will be the output if the button is visible but disabled?
WebElement button = driver.findElement(By.id("submitBtn"));
System.out.println(button.isDisplayed());
System.out.println(button.isEnabled());
medium
A. true true
B. true false
C. false true
D. false false

Solution

  1. Step 1: Understand isDisplayed() output

    The button is visible, so isDisplayed() returns true.
  2. Step 2: Understand isEnabled() output

    The button is disabled, so isEnabled() returns false.
  3. Final Answer:

    true false -> Option B
  4. Quick Check:

    Visible = true, Enabled = false [OK]
Hint: Visible true, enabled false if disabled button [OK]
Common Mistakes:
  • Assuming disabled means not displayed
  • Mixing up isDisplayed() and isEnabled() results
  • Expecting both to be true always
4. Identify the error in the following code snippet that checks if a radio button is selected:
WebElement radio = driver.findElement(By.name("gender"));
if(radio.isEnabled()) {
    System.out.println("Selected");
} else {
    System.out.println("Not Selected");
}
medium
A. Should use isSelected() instead of isEnabled()
B. Missing semicolon after findElement()
C. Incorrect locator By.name should be By.id
D. No error, code is correct

Solution

  1. Step 1: Understand the purpose of isEnabled() vs isSelected()

    isEnabled() checks if the element can be interacted with, not if it is selected.
  2. Step 2: Identify correct method to check selection

    To check if a radio button is selected, isSelected() must be used.
  3. Final Answer:

    Should use isSelected() instead of isEnabled() -> Option A
  4. Quick Check:

    Selection check = isSelected() [OK]
Hint: Use isSelected() to check radio button selection [OK]
Common Mistakes:
  • Using isEnabled() to check selection
  • Assuming enabled means selected
  • Ignoring method purpose differences
5. You want to write a test that clicks a checkbox only if it is visible, enabled, and not already selected. Which of the following code snippets correctly implements this logic?
hard
A. if(!checkbox.isDisplayed() && checkbox.isEnabled() && checkbox.isSelected()) { checkbox.click(); }
B. if(checkbox.isDisplayed() || checkbox.isEnabled() || checkbox.isSelected()) { checkbox.click(); }
C. if(checkbox.isDisplayed() && checkbox.isEnabled() && !checkbox.isSelected()) { checkbox.click(); }
D. if(checkbox.isDisplayed() && !checkbox.isEnabled() && !checkbox.isSelected()) { checkbox.click(); }

Solution

  1. Step 1: Understand the required conditions

    The checkbox must be visible (isDisplayed()), enabled (isEnabled()), and not selected (!isSelected()).
  2. Step 2: Analyze each option

    if(checkbox.isDisplayed() && checkbox.isEnabled() && !checkbox.isSelected()) { checkbox.click(); } uses AND (&&) to combine all correct conditions and negates isSelected() to ensure it is not selected before clicking.
  3. Final Answer:

    if(checkbox.isDisplayed() && checkbox.isEnabled() && !checkbox.isSelected()) { checkbox.click(); } -> Option C
  4. Quick Check:

    Use AND for all true and NOT for selection [OK]
Hint: Use && for all true and ! for not selected [OK]
Common Mistakes:
  • Using OR (||) instead of AND (&&)
  • Not negating isSelected() when needed
  • Clicking when checkbox is disabled or hidden
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard