在selenium webdriver中 - 我想为它们选择25个具有相同id但具有不同值的复选框

时间:2014-04-17 09:50:34

标签: selenium selenium-webdriver

在selenuim webdriver中 - 我想为它们选择25个具有相同ID但具有不同值的复选框。我试图自动化的网页有25个与“chkDelete”相同id的chexk盒子,其值如下所示。

<input id="chkDelete" class="clsCheckBox" type="checkbox" value="1" name="chkDelete">
<input id="chkDelete" class="clsCheckBox" type="checkbox" value="2" name="chkDelete">
<input id="chkDelete" class="clsCheckBox" type="checkbox" value="3" name="chkDelete">

....直到25.

我尝试使用此代码,但它没有按预期工作。

if ((!driver.findElement(By.id("chkDelete")).isSelected())
    && (driver.findElement(By.id("chkDelete")).getAttribute("value") == "4")) {
    driver.findElement(By.id("chkDelete")).click();
}

有人帮忙

2 个答案:

答案 0 :(得分:2)

使用以下代码:

List <WebElement> deleteCheckbox = driver.findElements(By.id("chkDelete"));

for(WebElement checkDelete : deleteCheckbox)
{

   if(!checkDelete.isSelected())
   {
      checkDelete.click();
   }

}

答案 1 :(得分:1)

根据您的示例单击值为4的复选框:

List<WebElement> boxes = driver.findElements(By.Id("chkDelete"));
for(WebElement box : boxes) {
    if(box.getAttribute("value") == "4") {
        if(!box.isSelected()) {
            box.click();
        }
    }
}