错误是"线程" main"中的例外情况java.lang.IndexOutOfBoundsException:索引:1,大小:0"而代码是:

时间:2014-04-29 07:59:14

标签: java selenium

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 Web_driver {

    public static void main(String[] args) {

        WebDriver driver = new FirefoxDriver();
        driver.get("http://www.quackit.com/html/codes/html_radio_button.cfm");
        List<WebElement> radio_button = driver.findElements(By.name("Preferred_color"));
        System.out.println(radio_button.get(1).getAttribute("value"));

执行上述代码后显示错误&#34;线程&#34; main&#34;

java.lang.IndexOutOfBoundsException: Index: 1, Size: 0
    at java.util.ArrayList.rangeCheck(Unknown Source)
    at java.util.ArrayList.get(Unknown Source)
    at Web_driver.main(Web_driver.java:16)

4 个答案:

答案 0 :(得分:0)

您的代码无法找到名为“Preferred_color”的单选按钮,因此返回的列表radio_button似乎为空。因此,当您尝试拨打radio_button.get(1)时,会导致NullPointerException

添加此null检查以避免异常:

    List<WebElement> radio_button = driver.findElements(By.name("Preferred_color"));
    if(radio_button !=null )
       System.out.println(radio_button.get(1).getAttribute("value"));

答案 1 :(得分:0)

在网页上找不到具有给定名称的元素,radio_button列表为空。尝试获取第一个元素会产生IndexOutOfBoundsException。检查By.name以查看如何查找元素。另外,在Java中,radio_button应该是radioButton。

答案 2 :(得分:0)

它接缝好像声明:

driver.findElements(By.name("Preferred_color"));

会返回一个空的List。检查您所在的页面是否定义了名为Preferred_color的元素。

答案 3 :(得分:0)

的System.out.println(radio_button.get(1).getAttribute(&#34;值&#34)); 在这一行中,您试图从空白中获取值,这是异常的原因