使用selenium webdriver在<label>列表中找到所选单选按钮

时间:2016-07-13 18:53:23

标签: java html selenium selenium-webdriver webdriver

如何遍历label中的所有div项。我的意思是有一堆未知数量的标签标签,其中有单选按钮。使用 Selenium WebDriver 。我需要找到所选的radio button。这里有两件事:

  1. 我需要找到无线电元素的数量
  2. 我需要找到所选的无线电元素
  3. 例如

    <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 个答案:

答案 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()方法识别所选的无线电元素

希望这澄清