如何在webelement列表中存储webelement?我已经为webelement创建了列表并在add方法中传递了webelement obj,但系统显示为null异常。
Java代码:List<WebElement> element=null;
并且在for循环中我在添加方法中传递webelement obj,如:WebElement we = driver...("test"); element.add(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();
}
}
谢谢,
答案 0 :(得分:1)
您将元素设置为null,然后尝试向其添加内容。你不能添加任何东西,因为它是空的!
相反,试试这个:
List<WebElement> element=new ArrayList<WebElement>();
...
如您所见,我在使用之前初始化了对象,因此它不再是null。
答案 1 :(得分:0)
请替换以下行:
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()); 如果有任何疑问,请告诉我。
答案 2 :(得分:0)
列出专辑 = driver.findElements(By.cssSelector("._3rte"))
为我工作。
选择器当然由您决定。第一部分是重要的部分