Java Selenium webdriver在webelement列表中存储webelement

Java Selenium webdriver在webelement列表中存储webelement,java,selenium-webdriver,Java,Selenium Webdriver,如何在webelement列表中存储webelement?我已经为webelement创建了列表,并在add方法中传递webelement obj,但系统显示空异常。 Java代码:List元素=null在for循环中,我在add方法中传递webelement obj,比如:webelement we=driver…(“test”);元素。添加(0,we) 为什么我得到空指针异常(java.lang.NullPointerException) 我将感谢你的意见 public void test

如何在webelement列表中存储webelement?我已经为webelement创建了列表,并在add方法中传递webelement obj,但系统显示空异常。 Java代码:List元素=null在for循环中,我在add方法中传递webelement obj,比如:
webelement we=driver…(“test”);元素。添加(0,we)

为什么我得到空指针异常(
java.lang.NullPointerException

我将感谢你的意见

 public void test(){
 List<WebElement> element = null;

    int rows=1;
    for(int i=1; i<=rows;i++){
        text=driver.findElement(By.xpath("//*[@id='testid']/table/tbody/tr["+i+"]/td/p")).getText();
        if(!text.equals("")){
            for(int j=1;j<=rows;j++){
                if(isElementPresent(driver, By.xpath("//*[@id='testid']/table/tbody/tr["+(j+1)+"]/td[6]/a"))){
                    WebElement we =driver.findElement(By.xpath("//*[@id='testid']/table/tbody/tr["+(j+1)+"]/td[6]/a"));
                    element.add(we);
                    rows++;
                }
            }
        }else{
            break;
        }
    }
    for(WebElement we:element){
        we.click();
        }
    }
公共无效测试(){
列表元素=null;
int行=1;

对于(inti=1;i您将元素设置为null,然后尝试向其添加一些内容。您不能向其添加任何内容,因为它为null

相反,请尝试以下方法:

List<WebElement> element=new ArrayList<WebElement>();
...
List元素=新的ArrayList();
...

如您所见,我在使用对象之前初始化了它,因此它不再应该为null。

请替换您的以下行:

 WebElement we = driver.findElement(By.xpath("//*[@id='testid']/table/tbody/tr["+(j+1)+"]/td[6]/a"));
包括:

 java.util.List<WebElement> element= driver.findElement(By.xpath("//*[@id='testid']/table/tbody/tr["+(j+1)+"]/td[6]/a"));
java.util.List element=driver.findElement(By.xpath(“//*[@id='testid']]/table/tbody/tr[”+(j+1)+“]/td[6]/a”);
您还可以使用:System.out.println(we.size())获取列表大小;
如果有任何查询,请告诉我。

列出相册=driver.findElements(By.cssSelector(“.u 3rte”))

为我工作


选择器当然取决于您。第一部分是重要的一点。您可以添加代码段吗?我已经添加了代码段下面的@Nahuel方法是正确的。请尝试一下,并让我们知道是否有进一步的问题:)@Subh,只想知道我们何时编写类似List element=driver.findElements(By.id(“test”)的代码)).System不提供任何空指针异常。为什么?它不会提供空指针异常,因为如果找不到元素,findElements将返回空列表。只有在findElement的情况下才会引发异常。并且您在RHS使用
接口
对其进行了初始化。请使用像
new ArrayList()这样的具体类
Oops,我不熟悉java,我认为它与C一样。更新了答案:P@NahuelThanx用于您的输入。嘿,我不能使用它,因为我想将新找到的元素存储在元素列表中,因为您给出的第二行将始终创建新列表。您应该将该行置于循环之外。它将列表存储在元素和t中如果需要,您可以在循环中调用它。