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

时间:2015-07-07 10:59:54

标签: selenium xpath nullpointerexception

我正在搜索具有动态ID的元素。我在下面写了代码,将这些元素添加到List List3中。但它会抛出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);
            }   
        }

请帮忙。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

import java.util.List;

以上导入,您使用后应该正常工作: -
List List1 = driver.findElements(By.xpath(&#34; // div [@id =&#39; id1&#39;] / ul / li&#34;));