Найдите выбранный переключатель в списке <label> с помощью веб-драйвера selenium
Как перебрать все 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;
}
2 ответа
Решение
Вместо того, чтобы использовать 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();
}
}
Надеюсь, поможет...:)
// Это даст количество радиоэлементов
List<WebElement> radioButtons = driver.findElements(By.xpath("//input[type=radio]"));
int size = = radioButtons.size();
// Перебираем вышеуказанный элемент и используем метод isSelected() для идентификации выбранных радиоэлементов
Надеюсь это уточнить