<br>
<input id="workedWithGR" type="radio" onclick="showDiv('hiddenInput');" value="yes" checked="" name="workedWithGR" style="border:none;">
<label>Yes</label>
<input id="workedWithGR" type="radio" onclick="hideDiv('hiddenInput');" value="no" name="workedWithGR" style="border:0px;">
对于是和否按钮我一直得到“没有找到元素发现Webdriver的错误”。我不能做xpath,因为id中有引号。
答案 0 :(得分:2)
使用标记“value”代替,或者使用子节点“label”,然后递归地向上移动树以选择正确的元素。例如,我假设您的html具有以下内容:
<br>
<input id="workedWithGR" type="radio" onclick="showDiv('hiddenInput');" value="yes" checked="" name="workedWithGR" style="border:none;">
<label>Yes</label>
<input id="workedWithGR" type="radio" onclick="hideDiv('hiddenInput');" value="no" name="workedWithGR" style="border:0px;">
<label>No</label>
因此,请尝试以下方法来关闭节点标签:
//input[@id=\"workedWithGR\"]/label[text()="Yes"]/../input
答案 1 :(得分:0)
我使用这种方法进行无线电输入。避免必须查找多个输入元素/使用具有相同名称的可变数量的单选按钮。
String valueToSelect = "no";
List<WebElement> radios = driver.findElement(By.name("workedWithGR"));
if (radios.size() == null)
return ;
for (WebElement radio : radios){
if (radio.getAttribute("value").equals(valueToSelect)){
radio.click();
break;
}
}