Asserting a checkbox is not checked by default in WebDriver with Junit

  • I'm using WebDriver with Junit 4.11 and I want to assert that a checkbox is not selected by default, and to do that I'm unsure which method to choose.

    The following is from the DOM before the checkbox is selected:

    <input type="checkbox" id="c234" name="instantAd" value="true" class="t-checkbox-A">

    Then, once the checkbox becomes selected a 'checked' is added, like so:

    <input type="checkbox" id="c234" name="instantAd" value="true" checked="" class="t-checkbox-A">

    I have tried the following:

    WebElement checkBox = chrome.findElement(By.cssSelector("input.t-checkbox-A[name=\"instantAd\"]"));
        new WebDriverWait(chrome, 5).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("input.t-checkbox-A[name=\"instantAd\"]")));

    The first assertion fails. Perhaps this is because the 'checked' attribute isn't visible in the DOM yet, at a guess.

    The stacktrace is displaying:

    java.lang.AssertionError: expected: java.lang.String but was: null

    I've searched many different posts but none offer me the answer Im looking for, and when checking for info and guidance (as being new to test automation, Im finding it difficult to work out what I need in my constructor.

    Any help would be most appreciated.

  • From the stacktrace it looks to me like the issue is assertEquals can't compare two different types, in this case a string and a null. I would suggest removing the quotes from "null" as that's what's causing it to be cast as a string.

    Alternatively you could switch the assert to


    Also, in Selenium checkboxes are considered selected, you could also try asserting on that being false


Log in to reply

Suggested Topics

  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2