如何获取所有复选框的文本(标签)

时间:2013-05-10 08:51:10

标签: selenium checkbox webdriver

我一直在尝试在页面的所有复选框中获取标签值,到目前为止,我一直在使用此代码自动执行下面的HTML。

JAVA

List<WebElement> allCBox = driver.findElements(By.xpath("//input[@type='checkbox']"));
for(WebElement checkbox : allCBox ) {
    System.out.println("--- "+checkbox.gettext()); 
}    

HTML:

<html>
  <p> Regions:
    south <input type="checkbox" name="south" value="south">&nbsp;
    british <input type="checkbox" name="british" value="british">&nbsp;
    north <input type="checkbox" name="north" value="north">&nbsp;
    southeast <input type="checkbox" name="southeast" value="southeast">&nbsp;
    west <input type="checkbox" name="west" value="west">&nbsp;
    Spanish <input type="checkbox" name="spanish" value="spanish">&nbsp;
    europian <input type="checkbox" name="europian" value="europian">&nbsp;
    northeast <input type="checkbox" name="northeast" value="northeast">
  </p>
</html>

2 个答案:

答案 0 :(得分:3)

在您的情况下,<input>没有文字属性,但标签等于“name”和“value”属性。所以你可以得到“名字”或“价值”属性。

List<WebElement> CHECKBOXlist = driver.findElements(By.xpath("//input[@type='checkbox']"));

for(WebElement checkbox : CHECKBOXlist) {
    System.out.println(checkbox.getAttribute("name"));
}

答案 1 :(得分:0)

尝试以下逻辑。

List<WebElement> checkboxList=driver.findElements(By.cssSelector("[type='checkbox']"))
for(WebElement checkbox : CHECKBOXlist)
{
    if(checkbox.getAttribute("name").length()>=6)
    {
           checkbox.click();
    }
}

仅供参考:我从here

看到了你的html页面