首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >feature.StepDefinitions cucumber的java.lang.NullPointerException

feature.StepDefinitions cucumber的java.lang.NullPointerException
EN

Stack Overflow用户
提问于 2016-02-22 02:27:09
回答 1查看 13.4K关注 0票数 1

我得到一个NullPointerException,如下所示:

功能:登录操作

场景:

Successful Login with Valid Credentials # C:/Users/chaitanya/workspace/cucumber2/src/feature/myfeature.feature:3
Given User is on Home Page                      # StepDefinitions.User_is_on_Home_Page()
When User enters UserName and Password          # StepDefinitions.User_enters_UserName_and_Password()
  java.lang.NullPointerException
    at feature.StepDefinitions.User_enters_UserName_and_Password(StepDefinitions.java:25)
    at ?.When User enters UserName and Password(C:/Users/chaitanya/workspace/cucumber2/src/feature/myfeature.feature:5)

Then Message displayed Login Successfully       # StepDefinitions.Message_displayed_Login_Successfully()

代码:

package feature;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;

public class StepDefinitions {
  public static WebDriver driver;

  @Given("^User is on Home Page$")
  public void User_is_on_Home_Page() throws Throwable {
    WebDriver driver = new FirefoxDriver();
    driver.manage().window().maximize();
    driver.get("http://opensource.demo.orangehrmlive.com/");
 }

  @When("^User enters UserName and Password$")
  public void User_enters_UserName_and_Password() throws Throwable {
    driver.findElement(By.name("txtUsername")).sendKeys("admin");
    driver.findElement(By.xpath("//input[@id='txtPassword']")).sendKeys("admin");
    driver.findElement(By.name("Submit")).click();
    Thread.sleep(3000);
  }

  @Then("^Message displayed Login Successfully$")
  public void Message_displayed_Login_Successfully() throws Throwable {
      System.out.println("login completed");
  }
}
EN

回答 1

Stack Overflow用户

发布于 2016-02-22 02:52:16

User_is_on_Home_Page()中,您在该方法中使用了一个名为driver的局部变量。您没有设置其他方法正在使用的static driver。因此,当它们引用driver时,它仍然是空的。

解决方案是改变:

public static WebDriver driver;

至:

public static final WebDriver driver = new FirefoxDriver();

并从User_is_on_Home_Page()中删除WebDriver driver = new FirefoxDriver();行,以便它同样引用静态实例。

Alternatively,延迟实例化静态驱动程序实例。替换:

WebDriver driver = new FirefoxDriver();

User_is_on_Home_Page()中,使用:

if (driver == null) {
    driver = new FirefoxDriver();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35540104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档