Java 获取步骤定义类下驱动程序的空指针异常

Java 获取步骤定义类下驱动程序的空指针异常,java,webdriver,cucumber,cucumber-junit,Java,Webdriver,Cucumber,Cucumber Junit,我正在为Cucumber特性文件编写步骤定义,下面是我的代码。在代码的开头,我已经初始化了驱动程序并在@giveste中给出了驱动程序的路径,但仍然只在特定行上得到驱动程序的Null指针异常,即使整个代码都使用相同的驱动程序 下面是我的代码: public class annotation { WebDriver driver = null; @Given("^I am on Facebook login page$") public void goToFacebook()

我正在为Cucumber特性文件编写步骤定义,下面是我的代码。在代码的开头,我已经初始化了驱动程序并在@giveste中给出了驱动程序的路径,但仍然只在特定行上得到驱动程序的Null指针异常,即使整个代码都使用相同的驱动程序

下面是我的代码:

public class annotation { 
 WebDriver driver = null;

  @Given("^I am on Facebook login page$")   
  public void goToFacebook() { 
   System.setProperty("webdriver.chrome.driver", "D:\\Automation 
   Jars\\chromedriver_win32\\chromedriver.exe");
  driver = new ChromeDriver();     
 driver.navigate().to("https://www.facebook.com/"); 
  } 

 @When ("^I enter password as \"(.*)\"$") 
  public void enterPassword(String arg1) {
  System.out.println("driver= "+ driver);
  driver.findElement(By.id("pass")).sendKeys(arg1);
  driver.findElement(By.id("u_0_v")).click(); 
} 

  @When("^I enter username as \"(.*)\"$") 
  public void enterUsername(String arg1){     
  System.out.println("driver= "+ driver);
  driver.findElement(By.id("email")).sendKeys(arg1); 
}

 @Then("^Login should fail$") 
 public void checkFail() {  
 if(driver.getCurrentUrl().equalsIgnoreCase(
 "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ 
    System.out.println("Test1 Pass"); 
 } else { 
 System.out.println("Test1 Failed"); 
} 
 driver.close(); 
}
下面是我得到的错误信息:

java.lang.NullPointerException
    at annotation.annotation.enterUsername(annotation.java:32)
    at ✽.When I enter username as "TOM"(annotation\outline.feature:10)

java.lang.NullPointerException
    at annotation.annotation.enterUsername(annotation.java:32)
    at ✽.When I enter username as "TOM"(annotation\outline.feature:16)

但我不明白。请在此提供帮助

findElement
可以在以下日志中返回null:annotation.enterUsername(字符串)[0m driver=null。另外,我看不到findElement返回null的任何原因。如果我错了,请纠正我。您可以添加功能文件吗?这是您添加的代码中的第32行?很抱歉延迟回复@Grasshopper,这是我的功能文件:功能:注释#这是如何使用后台消除重复步骤后台:用户na如果我在Facebook登录页面上,请访问Facebook#场景和场景:当我输入用户名为“TOM”,输入密码为“JERRY”时,登录应失败#场景和场景:当我输入用户名为“TOM”,输入密码为“JERRY”然后登录应该失败,但重新登录选项应该可用
findElement
可以在日志中返回nullGetting:annotation.enterUsername(String)[0m driver=null。另外,我看不到findElement返回null的任何原因。如果我错了,请纠正我。您可以添加功能文件吗?这是您添加的代码中的第32行?很抱歉延迟回复@Grasshopper,这是我的功能文件:功能:注释#这是如何使用后台消除重复步骤后台:用户na如果我在Facebook登录页面上,请访问Facebook#场景和场景:当我输入用户名为“TOM”,输入密码为“JERRY”时,登录应失败#场景和场景:当我输入用户名为“TOM”,输入密码为“JERRY”然后登录应该失败,但重新登录选项应该可用