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