jam*_*ang 66 java checkbox selenium attributes nullpointerexception
我在Java中使用Selenium来测试webapp中复选框的检查.这是代码:
private boolean isChecked;
private WebElement e;
Run Code Online (Sandbox Code Playgroud)
我声明e并将其分配给复选框所在的区域.
isChecked = e.findElement(By.tagName("input")).getAttribute("checked").equals("true");
Run Code Online (Sandbox Code Playgroud)
什么是奇怪的是getAttribute("checked")返回null,因此aNullPointerException
在复选框的HTML中,没有checked显示任何属性.但是,是不是所有input元素都有,checked = "true"所以这个代码应该工作?
CBR*_*cer 116
如果您使用的是Webdriver,那么您要查找的项目将被选中.
除非指定,否则通常在复选框的渲染中实际上不会应用已检查的属性.
所以你在Selenium Webdriver中寻找的是这个
isChecked = e.findElement(By.tagName("input")).Selected;
Run Code Online (Sandbox Code Playgroud)
由于WebDriver Java API中没有Selected,上面的代码应如下所示:
isChecked = e.findElement(By.tagName("input")).isSelected();
Run Code Online (Sandbox Code Playgroud)
Shu*_*oul 14
if ( !driver.findElement(By.id("idOfTheElement")).isSelected() )
{
driver.findElement(By.id("idOfTheElement")).click();
}
Run Code Online (Sandbox Code Playgroud)
小智 8
if(checkBox.getAttribute("checked") != null) // if Checked
checkBox.click(); //to Uncheck it
Run Code Online (Sandbox Code Playgroud)
您还可以添加and语句以确保选中是否为true.
我会用cssSelector做到这一点:
// for all checked checkboxes
driver.findElements(By.cssSelector("input:checked[type='checkbox']"));
// for all notchecked checkboxes
driver.findElements(By.cssSelector("input:not(:checked)[type='checkbox']"));
Run Code Online (Sandbox Code Playgroud)
也许这也有帮助;-)
| 归档时间: |
|
| 查看次数: |
172036 次 |
| 最近记录: |