我有以下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;等)任何人都可以提供任何建议吗?谢谢。
答案 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"));