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)
答案 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)); 在这一行中,您试图从空白中获取值,这是异常的原因