提问者:小点点

Selenium网络驱动程序在webelement列表中存储webelement


如何在webelement列表中存储webelement?我已经为webelement创建了列表并在add方法中传递webelement obj,但是系统显示空异常。JavaCode:List

为什么我得到空指针异常(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();
        }
    }

谢谢,


共3个答案

匿名用户

您将元素设置为null,然后尝试向其添加一些内容。您不能向其添加任何内容,因为它为空!

相反,试试这个:

List<WebElement> element=new ArrayList<WebElement>();
...

如您所见,我在使用它之前初始化了对象,因此它不应该再为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"));

您还可以使用:System. out.println(we.size())获取列表大小;如果有任何查询,请告诉我。

匿名用户

列表相册=driver. findElements(By.cssSelector("._3rte"))

为我工作。

选择者当然由你决定。第一部分是重要的部分