![](/img/trans.png)
[英]How to select radio button using Selenium WebDriver with Java?
[英]Select Radio Button in a group using Selenium WebDriver with Java
我希望能夠在由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
一個簡單的解決方法是使用value
或id
屬性。
driver.findElement(By.id("optionRadio" + (option + 1))).click();
該代碼對Firefox 28來說絕對可以正常工作。我已經嘗試過類似的方法:
功能:
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");
}
}
函數調用:
TestClass tc = new TestClass();
tc.exampleInputRadio(driver, 1);
tc.exampleInputRadio(driver, 2);
tc.exampleInputRadio(driver, 3);
tc.exampleInputRadio(driver, 4);
您也可以使用xpath,如下所示:
driver.findElement(By.xpath("//input[@value='1]")).click();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.