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\"]")));
Assert.assertEquals("null",checkBox.getAttribute("checked"));
checkBox.click();
Assert.assertEquals("true",checkBox.getAttribute("checked"));
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 http://junit.sourceforge.net/javadoc/org/junit/Assert.html 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.