java - @FindBy 注解定义的 Webelement 返回空指针

标签 java selenium nullpointerexception webdriver selenium-webdriver

出于某种原因,当我调用方法 Spage.editExButton(int ID) 时,我收到一条错误消息,指出 WebElement first 为 null。为什么它是空的?我已经使用 @FindBy 注释定义了它。我必须使用 findElement(By.id("xxx")) 明确定义元素,以便能够单击它。但为什么我无法使用@FindBy 符号调用它?

public class SPage extends GPage<SPage> {

    public SPage() {
        super();
    }

    public SPage(String pageType) {
        super(pageType);
    }

    @FindBy(id = "xxx")
    WebElement first;

    public WebElement eButton(int ID) {
        first.click();
        String tmp = ID + "-Edit";
        WebElement edit = getDriver().findElement(By.id(tmp));
        return edit;
    }

    public EPage cEdit(int ID) {
        eButton(ID).click();
        return new EPage(getBasePageType()).openPage(EPage.class);
    }
}

我是这样调用方法的:

static EPage epage;
static SPage spage;

@Test
public void edit_exception() {
             epage = spage.cEdit(IDbefore);
}

最佳答案

你需要调用它(最好在你的构造函数中):

PageFactory.initElements(getDriver(), this);

更多信息:https://code.google.com/p/selenium/wiki/PageFactory

关于java - @FindBy 注解定义的 Webelement 返回空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17818420/

相关文章:

java - 对于独立应用程序,我应该使用哪个 JRE?

python - 如何使用selenium python注销linkedin

java - 尝试运行 .jar 文件时出现 NullPointerException

java - 如何根据列值Java将一个2D数组拆分为多个2D数组?

java - 使用 OpenJDK 将 Jenkins 节点/代理作为 Windows 服务运行

java - 在 GridView 上保持背景的纵横比

java - Selenium java 。无法定位元素

python - 如果鼠标在浏览器 session 的主显示器上,为什么 Selenium 运行速度会变慢

java - validate.xml 之后的 validate() 方法

java - 什么是 NullPointerException,我该如何解决?