【发布时间】:2016-02-01 22:17:54
【问题描述】:
我想使用 Selenium 和 Java 将一些复选框标记为已选中,但在 .css 样式表中,它们的“宽度”和“高度”设置为“100”,但在浏览器中它们显示为普通复选框。因为这个 selenium 找到它们并成功执行 .click() 函数,但复选框没有被选中。 有没有办法简单地将复选框设置为选中而不使用 .click() ?
【问题讨论】:
我想使用 Selenium 和 Java 将一些复选框标记为已选中,但在 .css 样式表中,它们的“宽度”和“高度”设置为“100”,但在浏览器中它们显示为普通复选框。因为这个 selenium 找到它们并成功执行 .click() 函数,但复选框没有被选中。 有没有办法简单地将复选框设置为选中而不使用 .click() ?
【问题讨论】:
如果没有可重现的样本很难说,但您可以尝试通过 javascript 点击:
WebElement checkbox = driver.findElement(By.ID("mycheckbox"));
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].click();", checkbox);
在这里查看差异:
【讨论】:
恐怕复选框上没有 select() 方法, 但你可以写这样的东西并重用它..这将抽象选择的操作
if ( !driver.findElement(By.id("idOfTheElement")).isSelected() )
{
driver.findElement(By.id("idOfTheElement")).click();
}
【讨论】: