为什么我总是将页面中的单选按钮计为零?

时间:2016-08-03 14:47:44

标签: java selenium-webdriver

我正在尝试使用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());

2 个答案:

答案 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;。