大家好我在@FindBy注释中使用了@FindBy注释,在基类中,即所有页面的父类,我已经将pagefactory转化为如下所示:
的BasePage:
public BasePage(WebDriver driver){
PageFactory.initElements(driver, this);
}
子页面:
@FindBy(id = "ctl00_ContentPlaceHolder1_physicianList")
WebElement myElement;
到目前为止,一切正常。
现在我需要将一些参数附加到地址,因为我需要它来进行一些逻辑实现。
由于@FindBy
只能用于静态地址,我决定使用传统的driver.findElementBy
...
如下所示:
WebElement report = driver.findElement(By.id("ctl00" + noOfPatients + "_LinkButton2"));
但是当我运行这个时,我得到一个nullpointer异常。
这不是地址的问题,因为我已尝试对上述ID进行硬编码并将其设置为静态,如下所示:
ctl004_LinkButton2
我仍然遇到了nullpointer异常,而当我使用@FindBy
尝试静态时,它运行正常。
有人可以提供一些意见。
谢谢
答案 0 :(得分:0)
嗨,伙计们,我想出了问题所在。我得到驱动程序的值为null因此nullpointer异常。我曾经在子类中添加了一个Webdriver驱动程序实现,我忘了删除它。这导致了这个问题。