【发布时间】:2014-06-18 22:17:17
【问题描述】:
我希望能够在由 name 属性标识的一组(单选按钮)中选择一个单选按钮:
<div>
<input type="radio" name="exampleInputRadio" id="optionRadio1" value="1">
<input type="radio" name="exampleInputRadio" id="optionRadio2" value="2">
<input type="radio" name="exampleInputRadio" id="optionRadio3" value="3">
<input type="radio" name="exampleInputRadio" id="optionRadio4" value="4">
</div>
我使用以下代码来做我想做的事:
public void exampleInputRadio(WebDriver driver, int option) {
List<WebElement> radios = driver.findElements(By.name("exampleInputRadio"));
if (option > 0 && option <= radios.size()) {
radios.get(option - 1).click();
} else {
throw new NotFoundException("option " + option + " not found");
}
}
问题在于 Selenium 总是选择第一个单选按钮,无论 option 参数的值是什么。
当我在上面的方法中编码时:
for (int i = 0; i < radios.size(); i++) {
System.out.println(radios.get(i).getAttribute("id"));
}
我得到这个输出:
optionRadio1
optionRadio2
optionRadio3
optionRadio4
【问题讨论】:
-
这对我来说绝对没问题。您能否发布您的选项被调用的内容和方式。
-
@nitinchawda 对不起,我面前没有代码,但即使我在上面的方法中做
radios.get(3).click(),第一个单选按钮也会被选中。如果有帮助,我会使用最新版本 (2.41.0) 的 selenium。 -
不确定是否与版本问题有关。我有 Firefox 29、chrome 34 和 selenium 2.39 版本。这在两种浏览器上都非常有效。
-
@user1177636 不,我使用的是 Firefox 28
-
我找到了解决方案。输入进入
label标签。很抱歉给您带来不便...
标签: java html selenium selenium-webdriver webdriver