【发布时间】:2014-12-16 11:41:13
【问题描述】:
如何将webelement存储在webelement列表中?我已经为 webelement 创建了列表并在 add 方法中传递了 webelement obj,但系统显示 null 异常。
Java 代码:List<WebElement> element=null;,在 for 循环中,我在 add 方法中传递 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();
}
}
谢谢,
【问题讨论】:
-
可以添加代码sn-p吗?
-
我已经添加了代码sn-p
-
下面@Nahuel 的方法是正确的。请尝试一下,如果有其他问题,请告诉我们.. :)
-
@Subh,只是想知道我们何时编写类似 List
element = driver.findElements(By.id("test")) 的代码。系统没有给出任何空指针异常。为什么? -
它不会给你空指针异常,因为如果没有找到任何元素, findElements 会返回一个空列表。只有在 findElement 的情况下才会抛出异常。