Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Selenium Java获取单选按钮的文本_Java_Selenium - Fatal编程技术网

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

如何使用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

我有以下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中,我试图捕获每个单选按钮(例如“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变量显示为空白。奇怪,让我检查一下你是否可以在我的实际网站上练习: