我有复选框列表,我逐一选择它们
List<WebElement> props = driver.findElementsByXPath("//input[@type='checkbox']");
for (WebElement prop : props)
if (!prop.isSelected()) {
prop.click();
}
但我需要只选择第一个可用的。 我该如何实现这一目标?
答案 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;
}