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:NullPointerException通过xpath查找元素时出错_Selenium_Xpath_Nullpointerexception - Fatal编程技术网

Selenium:NullPointerException通过xpath查找元素时出错

Selenium:NullPointerException通过xpath查找元素时出错,selenium,xpath,nullpointerexception,Selenium,Xpath,Nullpointerexception,我正在搜索具有动态ID的元素。我已经编写了以下代码将这些元素添加到列表3中。但它抛出NullPointerException错误: public void markAnswers() { List<WebElement> List1 = driver.findElements(By.xpath("//div[@id='id1']/ul/li")); List<WebElement> List2 = drive

我正在搜索具有动态ID的元素。我已经编写了以下代码将这些元素添加到列表3中。但它抛出NullPointerException错误:

public void markAnswers()
        {
            List<WebElement> List1 = driver.findElements(By.xpath("//div[@id='id1']/ul/li"));
            List<WebElement> List2 = driver.findElements(By.xpath("//div[@class='id2']/div"));

            System.out.println(List1.size());
            String str;
            StringBuilder sb=new StringBuilder();
            for(WebElement el: List2)
            {
                str=el.getAttribute("id");
                System.out.println(str);                        
                Utilities.waitFor(5000);
                WebElement element = driver.findElement(By.xpath("//div[@id='"+str+"']/div[4]/div[1]/ul[1]/li/input"));
                element.click();
                element.getAttribute("innerHTML");
                List3.add(element);
            }   
        }

请帮助。

列表未正确初始化。初始化如下,问题已解决:

List<WebElement> List1 = new ArrayList<WebElement>();

@您已经正确初始化了列表,但可能并没有添加正确的包。检查您是否已导入以下包:

导入java.util.List

使用上述导入,您使用的以下导入应该可以正常工作:-
List List1=driver.findElementsBy.xpath//div[@id='id1']/ul/li

编辑您的答案并添加详细的例外情况。是否在此处抛出NullPointerException元素。单击?这个元素存在吗?XPath好吗?如果您使用的是Chrome,请转到控制台并键入$x'//div[@id=YOUR_STRING]/div[4]/div[1]/ul[1]/li/input'以查看您是否可以在没有Selenium的情况下找到它。可能是您在getAttributeid方法中遇到该异常,我认为列表元素中没有该'id'。检查一下。或者您可以发布HTML代码。您在Web驱动程序上的何处创建了实例。可能是驱动程序在使用之前未初始化。getAttributeid打印正确的ID。Xpath是正确的。我在Firefox中验证了它,我已经导入了这个包,它能够找到删除项。问题在于初始化和执行修改问题已得到解决。谢谢