如何选择仅使用webdriver的第一个可用复选框

时间:2017-07-25 08:05:27

标签: java selenium webdriver

我有复选框列表,我逐一选择它们

List<WebElement> props = driver.findElementsByXPath("//input[@type='checkbox']");
        for (WebElement prop : props)
            if (!prop.isSelected()) {
                prop.click();
            }

但我需要只选择第一个可用的。 我该如何实现这一目标?

3 个答案:

答案 0 :(得分:3)

如果您只想选择第一个复选框,为什么要获取所有复选框?

以下代码将为您提供页面上的所有复选框。

List<WebElement> props = driver.findElementsByXPath("//input[@type='checkbox']");

要仅获取第一个复选框,您可以使用以下代码。 Xpath允许你使用下标运算符,只需记下索引从1开始而不是0。

WebElement firstCheckbox = driver.findElement(By.xpath("//input[@type='checkbox'][1]"))

答案 1 :(得分:0)

列出props = driver.findElements(By.xpath(&#34; //输入[@type =&#39;复选框&#39;]&#34;));

int size = props.size();

for(int i = 1; i&lt; = size; i ++){

WebElement element = driver.findElementsByXPath(&#34;(//输入[@type =&#39;复选框&#39;])[&#34; + i +&#34;]&#34;) ;

如果(!(element.isSelected()){

element.click();
i = size+1;

}

}

答案 2 :(得分:0)

最后我用休息解决了它并且效果很好

List<WebElement> props = driver.findElements(By.xpath("//input[@type='checkbox']"));
    for (WebElement prop : props)
        if (!prop.isSelected()) {
            prop.click()
            break;
        }