如何使用Selenium Java获取单选按钮的文本
我有以下HTML代码:如何使用Selenium Java获取单选按钮的文本,java,selenium,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
<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中,我试图捕获每个单选按钮(例如“Los Angeles”、“San Francisco”等)的文本。以下是我的代码:
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"));
}
公共静态无效无线电测试(WebDriver){
列表收音机=driver.findElements(按名称(“城市”);
对于(int i=0;i您可以在chrome或safari上安装开发者工具,以检查属性及其运行时值。在chrome中,您可以打开开发者工具,转到“元素”选项卡,单击感兴趣的元素。它将在右侧显示元素的属性。在那里您可以看到您感兴趣的属性/属性,并获得使用代码相应地检查值。用getText()方法而不是value属性检查
for(int i = 0; i<radios.size(); i++){
radios.get(i).click();
System.out.println(radios.get(i).getText());
}
for(int i=0;i它返回“la”、“sf”等。因为您正在使用getAttribute()
方法提取attribute,对于文本,您必须使用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);
}
}
公共静态无效无线电测试(WebDriver){
列表收音机=driver.findElements(按名称(“城市”);
对于(int i=0;i捕获每个单选按钮的文本,可以使用以下代码块:
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"));
List my_cities=driver.findElements(By.xpath(//input[@name='city'和@type='radio']);
for(WebElement city:my_cities)
System.out.println(“城市名称为:”+City.getAttribute(“innerHTML”);
如果您对上述代码有任何问题,请告诉我。您好,我已尝试使用您的代码。我收到了空行(如中所示,它不会打印除空格以外的任何内容)注释此行。获取(I)。单击();并检查一次。还要进行调试并检查收音机在您的情况下会返回什么?很抱歉,回复太晚。它说:城市名称是:(空白,这样4次)我得到“城市名称是:”四次(显示City.getAttribute(“innerHTML”)应该在哪里的空白)你能用你的问题中的HTML
格式像实际的HTML
一样吗?这是实际的页面(你可以右键点击检查):它打印了四次“城市名称”:cityName变量显示为空白。奇怪,让我检查一下你是否可以在我的实际网站上练习: