如何使用Selenium Java获取单选按钮的文本

时间:2017-11-06 05:20:54

标签: java selenium

我有以下HTML代码:

<form action=""><input type="radio" id="r1" name="city" value="la">Los Angeles</br><input type="radio" id="r2" name="city" value="sf">San Francisco</br>input type="radio" id="r3" name="city" value="ny">New York</br><input type="radio" id="r4" name="city" value="chicago">Chicago</br></form>

在使用Java的Selenium WebDriver中,我试图捕获每个单选按钮的文本(所以&#34;洛杉矶&#34;,&#34;旧金山&#34;等等)这是我的代码:

public static void radioTest(WebDriver driver){
List<WebElement> radios = driver.findElements(By.name("city"));
for(int i = 0; i<radios.size(); i++){
    radios.get(i).click(); 
    System.out.println(radios.get(i).getAttribute("value"));

}

}

这里的问题是当我想要实际文本时,它正在返回&#34; la&#34;,&#34; sf&#34;等等(&#34;洛杉矶&#34;,& #34;旧金山&#34;等)任何人都可以提供任何建议吗?谢谢。

4 个答案:

答案 0 :(得分:1)

通过getText()方法而不是value属性检查并检查

for(int i = 0; i<radios.size(); i++){
    radios.get(i).click(); 
    System.out.println(radios.get(i).getText());

}

答案 1 :(得分:0)

您可以在chrome或safari上安装开发人员工具来检查属性及其运行时值。在Chrome中,您可以打开开发人员工具,转到&#39; Elements&#39;选项卡,单击感兴趣的元素。它将在右侧显示元素的属性。你可以看到你感兴趣的属性/属性,并使用代码相应地获取值。

答案 2 :(得分:0)

它会返回“la”,“sf”等,因为您正在使用value方法提取getAttribute()属性,对于您必须使用getText()方法的文本。

尝试此代码,让我知道发生的任何问题:

public static void radioTest(WebDriver driver){
List<WebElement> radios = driver.findElements(By.name("city"));
for(int i = 0; i<radios.size(); i++){
    radios.get(i).click(); 
    String cityName=radios.get(i).getText();
    System.out.println("Name of city: "+cityName);
}

}

答案 3 :(得分:0)

要捕获每个单选按钮的文本,可以使用以下代码块:

List<WebElement> my_cities = driver.findElements(By.xpath("//input[@name='city' and @type='radio']"));
for (WebElement city:my_cities)
    System.out.println("City name is : " + city.getAttribute("innerHTML"));