单击复选框后,复选框将突出显示,但未单击该复选框 而且我没有例外。
<input name="include_notice" onclick="javascript:TogglePublishDates();" type="checkbox">
我使用“姓名”识别此复选框,并尝试使用sendkeysReturn
和sendKeysEnter
。
注意:此测试用例运行良好很长时间。在Selenium Web驱动程序或Firefox中没有进行任何更改。
答案 0 :(得分:1)
您可以尝试使用java脚本单击,如下所示:
JavascriptExecutor e = (JavascriptExecutor)wd;
e.executeScript("arguments[0].click();", driver.findElement(By.name("include_notice")));
如果您仍然观察到不一致的行为,您可能希望实现重试机制,如下所示:
//1) Finding the check box
WebElement checkBox = driver.findElement(By.name("include_notice"));
//2) Checking whether check box is already checked
if (!checkBox.isSelected()) {
JavascriptExecutor e = (JavascriptExecutor)wd;
e.executeScript("arguments[0].click();", checkBox);
//3) Checking whether first attempt to check the check box worked
if (!checkBox.isSelected()) {
//4) Retrying
checkBox.click();
}
}
如果您有任何疑问,请与我们联系。
答案 1 :(得分:1)
您可以尝试使用以下代码:
driver.findElement(By.name("include_notice")).click(); //find checkbox element and click on it.
使用java-script executor单击复选框。
WebElement checkbox = driver.findElement(By.name("include_notice"));
((JavascriptExecutor) driver).executeScript("arguments[0].click();", checkbox);
如果已选中Checkbox,请使用此代码。
WebElement checkbox = driver.findElement(By.name("include_notice"));
if (!checkBox.isSelected()) //checkbox is not selected then only it will select the checkbox.
{
checkBox.click();
System.out.println(checkbox.isSelected());
}