Получение java.lang.NullPointerException при попытке использовать @FindBy в webDriver

Я получаю исключение java.lang.NullPointerException при попытке найти элементы на веб-странице с помощью аннотации @FindBy.

Мой код -

public class pageObject{
  WebDriver driver;

  @FindBy(id = "email")
  WebElement searchBox;
  @FindBy(id = "u_0_v")
  WebElement submit;

  void pageObject(String web){
    FirefoxProfile profile = new FirefoxProfile();
    profile.setAssumeUntrustedCertificateIssuer(false);
    profile.setAcceptUntrustedCertificates(false);
    this.driver = new FirefoxDriver(profile);
    this.driver.get(web);
    this.driver.manage().window().maximize();
    this.driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    searchBox.click();
    searchBox.sendKeys("er");
    submit.click();
  }

  public static void main(String[] args){
    new pageObject("https://www.facebook.com/?_rdr=p");
  }
}

Я получил исключение для приведенного выше кода -

Исключение -

Exception in thread "main" java.lang.NullPointerException
at com.Selenium_Practice.pageObject.<init>(pageObject.java:29)
at com.Selenium_Practice.pageObject.main(pageObject.java:35)

Я также пытался использовать

 @FindBy(how = HOW.ID , using = "email")  and @FindBy(how = HOW.ID , using = "u_0_v")

но снова получил то же исключение нулевого указателя

1 ответ

Решение

Сначала вам нужно инициализировать свои элементы, если вы используете PageFactory от Selenium и хотите, чтобы ваш класс был самодостаточным *

pageObject(String web){

    FirefoxProfile profile = new FirefoxProfile();
    profile.setAssumeUntrustedCertificateIssuer(false);
    profile.setAcceptUntrustedCertificates(false);
    this.driver = new FirefoxDriver(profile);

    // You need to put this line in your constructor
    PageFactory.initElements(this.driver, this);

    // Then follows the rest of your constructor
    ...
}

* это означает, что вы также можете инициировать элементы этого класса вне класса, но я предполагаю, что вы хотите сделать это внутри.

Другие вопросы по тегам