我正在尝试自动化Web数据表测试。我在要用来定位的每个WebElement对象中都收到此NullPointerException。我的代码尽可能简单:
import { ChangeDetectorRef } from '@angular/core';
constructor(
changeDetectorRef: ChangeDetectorRef
) {
//call this when you receive the backend response
changeDetectorRef.markForCheck();
}
我在每个对象中都获得了NullPointerException,而不是NoSuchElementException,而在驱动程序正确进入页面时,当驱动程序找不到某些元素时,我通常会得到它。如果调试,则可以在驱动程序实例中找到具有相同id或xpath表达式的所有元素。不知道发生了什么
这是HTML部分:
public class tableTestStepDefs {
@FindBy(how = How.XPATH, using = "//*[@id=\"contenido-table\"]/tbody/tr[1]/td[3]")
public WebElement cell1;
@FindBy(how = How.ID, using = "\"DTE_Field_sufijo\"")
public WebElement editableCell1;
@When("^i click on cell1 to make it editable$")
public void hagoClickEnUnaCeldaDeLaColumnaSufijo(){
driver.get("http://192.168.242.104:7777/some/context");
cell1.click();
}
答案 0 :(得分:1)
您的FindBy语句之一是错误的。
@FindBy(how = How.ID, using = "\"DTE_Field_sufijo\"")
您是说ID 包括多余的引号。它应显示为:
@FindBy(how = How.ID, using = "DTE_Field_sufijo")
尝试进行更改,看看是否可行。否则,您将需要包含实际的错误消息以帮助查明问题出在哪里。