我得到一个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");
}
}
发布于 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();
}
https://stackoverflow.com/questions/35540104
复制相似问题