Seleniumcheckbox属性“checked”

我正在使用Java中的Selenium来testingwebapp中checkbox的检查。 代码如下:

private boolean isChecked; private WebElement e; 

我声明e并将其分配到checkbox所在的区域。

 isChecked = e.findElement(By.tagName("input")).getAttribute("checked").equals("true"); 

奇怪的是, getAttribute("checked")返回null ,因此是NullPointerException

在checkbox的HTML中,没有显示checked属性。 但是,是不是所有的input元素都有一个checked = "true"所以这个代码应该工作?

如果您正在使用Webdriver,那么您正在查找的项目被选中。

通常情况下,在checkbox的呈现中,除非指定,否则实际上并不应用选中的属性。

所以你在Selenium Webdriver中寻找的是这样的

 isChecked = e.findElement(By.tagName("input")).Selected; 

由于在WebDriver Java API中没有select,所以上面的代码应该如下所示:

 isChecked = e.findElement(By.tagName("input")).isSelected(); 
 if ( !driver.findElement(By.id("idOfTheElement")).isSelected() ) { driver.findElement(By.id("idOfTheElement")).click(); } 
  if(checkBox.getAttribute("checked") != null) // if Checked checkBox.click(); //to Uncheck it 

你也可以添加一个and语句,以确保如果选中是正确的。

我会用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']")); 

也许这也有帮助;-)

对于需要select/取消select多个checkbox的事件,使用Chrome驱动程序进行以下工作(IE驱动程序以某种方式失败):

注:我的checkbox没有与他们关联的ID,这将是根据文档识别他们的最佳方式。 注意! 在声明的开头签字。

 if(!driver.findElement(By.xpath("//input[@type='checkbox' and @name='<name>']")).isSelected()) { driver.findElement(By.xpath("//input[@type='checkbox' and @name= '<name>']")).click(); } 

selenium骨架的机理:

这里selenium向服务器发出请求并获取带有标记名input的第一个子元素

 WebElement e = e.findElement(By.tagName("input")); 

比你尝试接收该元素的属性

 object attribute = e.getAttribute("checked") 

所以要么使用

 findElement(By.attribute("checked") 

或使用

 findElement(By.xpath("\\input[@checked='true']") 

PS我不熟悉java的相当于seleniumapi所以一些方法可能会被命名稍有不同。

  1. 声明一个variables。
  2. 存储单选button的选中属性。
  3. 有条件。

让我们假设

 private string isChecked; private webElement e; isChecked =e.findElement(By.tagName("input")).getAttribute("checked"); if(isChecked=="true") { } else { } 

希望这个答案对你有帮助。 让我知道,如果有任何澄清在CSharp Seleniumnetworking驱动程序。

 public boolean getcheckboxvalue(String element) { WebElement webElement=driver.findElement(By.xpath(element)); return webElement.isSelected(); }