Java 步骤定义时出现空指针异常

Java 步骤定义时出现空指针异常,java,selenium,selenium-webdriver,cucumber,bdd,Java,Selenium,Selenium Webdriver,Cucumber,Bdd,我将Cucumber BDD与TestNG一起使用,但是在我的步骤中得到了NullPointerException 我尝试过这里建议的很多东西,但都没有用 请帮帮我。我真的不确定是什么原因导致了这个错误 作为基本页的运行程序文件: 堆栈跟踪: 请帮助我,因为我是第一次尝试用TestNG制作黄瓜。 我没有在步骤定义中使用驱动程序。我真的不确定是什么导致了NullPointerException的发生您似乎还没有在步骤定义中创建CuraLoginPage的实例。如果您使用的是TestNG页面对象模型

我将Cucumber BDD与TestNG一起使用,但是在我的步骤中得到了NullPointerException

我尝试过这里建议的很多东西,但都没有用

请帮帮我。我真的不确定是什么原因导致了这个错误

作为基本页的运行程序文件:

堆栈跟踪:

请帮助我,因为我是第一次尝试用TestNG制作黄瓜。
我没有在步骤定义中使用驱动程序。我真的不确定是什么导致了NullPointerException的发生

您似乎还没有在步骤定义中创建CuraLoginPage的实例。如果您使用的是TestNG页面对象模型,那么您需要添加如下内容

CuraLoginPage curaloginpage;

public LoginStep()
{
    curaloginpage = new CuraLoginPage(driver);
}

如果可能的话,也可以共享CuraLoginPage的代码。

您好,它成功了,我还在下面粘贴CuraLoginPage代码。不知道为什么,但在输入用户名时,我在sendkeys处得到空指针。我正在获取所需的所有数据,并且对象xpath也正确。如果这有效,请将其标记为已接受。我也一定会帮你解决其他问题在构造函数中,您没有调用PageFactory.initElementsdriver,这是;public CuraLoginPageWebDriver驱动程序{PageFactory.initElementsdriver,这个;}你好,没有兄弟,它不工作,org.openqa.selenium.support.pagefactory.DefaultElementLocator.findElementDefaultElementLocator.java:70位于org.openqa.selenium.support.pagefactory.internal.LocatingElementHandler.invokeLocatingElementHandler.java:39位于com.sun.proxy.$Proxy36.keyssendUnknown Source位于pages.CuraLoginPage.logintocuraloginpage.java:70在stepdefinition.LoginStep.user_loginLoginStep.java:29
package stepdefinition;

import java.lang.reflect.Method;

import org.openqa.selenium.WebDriver;
import org.testng.Assert;
import org.testng.ITestContext;

import io.cucumber.java.en.Given;
import main.CucumberRunner;
import pages.CuraLoginPage;

public class LoginStep extends CucumberRunner {

    CuraLoginPage curaloginpage;



    @Given("^User logged in with \"(.*)\" and \"(.*)\"$")
    public void user_login(String logicalName,String url) throws Throwable {

        System.out.println(logicalName);
        System.out.println(url);

          Method method; ITestContext iTestContext;
        try {
            curaloginpage.LogintoCura(logicalName, url); **>>> NULL POINTER EXCEPTION**
        }
        catch(Exception e){
            e.printStackTrace();
        }


    }


}
java.lang.NullPointerException
    at stepdefinition.LoginStep.user_login(LoginStep.java:27)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at io.cucumber.java.Invoker.invoke(Invoker.java:27)
    at io.cucumber.java.JavaStepDefinition.execute(JavaStepDefinition.java:27)
    at io.cucumber.core.runner.PickleStepDefinitionMatch.runStep(PickleStepDefinitionMatch.java:63)
    at io.cucumber.core.runner.TestStep.executeStep(TestStep.java:64)
    at io.cucumber.core.runner.TestStep.run(TestStep.java:49)
    at io.cucumber.core.runner.PickleStepTestStep.run(PickleStepTestStep.java:46)
    at io.cucumber.core.runner.TestCase.run(TestCase.java:51)
    at io.cucumber.core.runner.Runner.runPickle(Runner.java:67)
    at io.cucumber.testng.TestNGCucumberRunner.runScenario(TestNGCucumberRunner.java:124)
    at io.cucumber.testng.AbstractTestNGCucumberTests.runScenario(AbstractTestNGCucumberTests.java:29)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:134)
    at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:597)
    at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:173)
    at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)
    at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:816)
    at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:146)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
    at java.util.ArrayList.forEach(ArrayList.java:1257)
    at org.testng.TestRunner.privateRun(TestRunner.java:766)
    at org.testng.TestRunner.run(TestRunner.java:587)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:384)
    at org.testng.SuiteRunner.access$000(SuiteRunner.java:28)
    at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:425)
    at org.testng.internal.thread.ThreadUtil.lambda$execute$0(ThreadUtil.java:68)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
CuraLoginPage curaloginpage;

public LoginStep()
{
    curaloginpage = new CuraLoginPage(driver);
}