我正在尝试使用name =“preferred_color”来计算单选按钮。我总是得数= 0.我做错了什么?页面“http://www.quackit.com/html/codes/html_radio_button.cfm”上有6个带有该名称的单选按钮。
以下是代码:
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class RadioButtons {
public static void main(String[] args) throws Exception {
WebDriver driver = new FirefoxDriver();
driver.navigate().to("http://www.quackit.com/html/codes/html_radio_button.cfm");
Thread.sleep(4000);
List<WebElement> radio_button = driver.findElements(By.name("preferred_color"));
System.out.println(radio_button.size());
答案 0 :(得分:1)
在这种情况下,对于任何其他元素,name也存在,请尝试使用cssSelector或xpath。在你的HTML中也存在iframe,所以你需要先切换到iframe,如下所示:
driver.switchTo().frame( driver.findElement( By.cssSelector( ".result[name = 'result1']" ) ) );
现在使用以下代码:
List<WebElement> radio_button = driver.findElements(By.cssSelector(" form>input[name = 'preferred_color']"));
您需要告诉确切的元素定位器来获取元素或元素。
你需要切换到另一个iframe才能获得另一个单选按钮。
答案 1 :(得分:0)
如果我错了,请纠正我,但我认为webdriver不会在iframe中搜索。在该页面中,似乎每个单选按钮都在iframe
...
导航到页面后,尝试执行
driver.switchTo().frame("resutl1");
&#34; resutl1&#34;是第一个iframe
的名称。
它将打印&#34; 3&#34;。