如何遍历label
中的所有div
项。我的意思是有一堆未知数量的标签标签,其中有单选按钮。使用 Selenium WebDriver 。我需要找到所选的radio button
。这里有两件事:
例如
<div class="controls">
<label class="radio inline">
<input type="radio" value="0" name="PlaceOfResidence"/>
Urban
</label>
<label class="radio inline">
<input type="radio" value="1" name="PlaceOfResidence"/>
Suburb
</label>
<label class="radio inline">
<input type="radio" value="2" name="PlaceOfResidence"/>
Rural
</label>
<label class="radio inline">
<input type="radio" value="3" name="PlaceOfResidence"/>
Not Available
</label>
</div>
这是我尝试过的
private String isRadioButtonSelected2(String name){
List<WebElement> webEl = this.getWrappedDriver().findElements(By.xpath("//input[@type='radio' and @name = '"+name+"']/parent::label")); //and @value='"+value+"']"));
String selectedValue = "";
for(WebElement element: webEl){
Boolean selectedRadio = element.isSelected();
if(selectedRadio){
selectedValue =this.getWrappedDriver().findElement(By.xpath("//input[@type='radio' and @name = '"+name+"']/parent::label")).getText();
log("&&&&&&&&&&"+selectedValue);
}else{
return null;
}
}
return selectedValue;
}
答案 0 :(得分:3)
而不是使用xpath
查找所有单选按钮,您只需使用比By.name
快得多的xpath
即可找到它。请尝试以下方法: -
List<WebElement> radioButtons = this.getWrappedDriver().findElements(By.name("PlaceOfResidence"));
int size = radioButtons.size();
// This is the count of total radio button
for(WebElement radio : radioButtons)
{
If(radio.isSelected())
{
String selectedValue =radio.findElement(By.xpath("./parent::label")).getText();
}
}
希望它有帮助...:)
答案 1 :(得分:1)
//这将给出无线电元素的数量
C.TEST.RPN_POST_NMS_TOP_N = 300
//迭代上述元素并使用isSelected()方法识别所选的无线电元素
希望这澄清