Java Selenium webdriver在webelement列表中存储webelement
如何在webelement列表中存储webelement?我已经为webelement创建了列表,并在add方法中传递webelement obj,但系统显示空异常。 Java代码: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
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中如果需要,您可以在循环中调用它。