【发布时间】:2021-05-14 13:44:49
【问题描述】:
I am getting java.lang.NullPointerException when I run the testcase in Eclipse. Can somebody help me in pointing out the error I have made.
第 17 行错误:LoginPage.Java 中的 WebElement。 @ 第 12 行:TC_LoginTest_001.java 中的 LoginPage。
**LoginPage.Java**
package com.internetBanking.pageObjects;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
public class LoginPage {
WebDriver driver;
public LoginPage (WebDriver driver) {
this.driver = driver;
}
WebElement usrname = driver.findElement(By.name("uid"));
WebElement pwd = driver.findElement(By.name("password"));
WebElement login = driver.findElement(By.name("btnLogin"));
public void setUsrname(String uname) {
usrname.sendKeys(uname);
}
public void setPwd(String pswd) {
pwd.sendKeys(pswd);
}
public void login() {
login.click();
}
}
**TC_LoginTest_001.java**
package com.internetBanking.testCases;
import org.testng.annotations.Test;
import com.internetBanking.pageObjects.LoginPage;
public class TC_LoginTest_001 extends BaseClass {
@Test
public void LoginTest() {
driver.get(baseURL);
logger.info("URL is opened");
LoginPage loginPage = new LoginPage(driver);
loginPage.setUsrname(username);
logger.info("Username is entered");
loginPage.setPwd(password);
logger.info("Password is entered");
loginPage.login();
logger.info("Login button is clicked");
}
}
当我运行测试用例时,我收到以下错误:
java.lang.NullPointerException 在 com.internetBanking.pageObjects.LoginPage.(LoginPage.java:17) 在 com.internetBanking.testCases.TC_LoginTest_001.LoginTest(TC_LoginTest_001.java:12) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(未知来源) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源) 在 java.lang.reflect.Method.invoke(未知来源) 在 org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124) 在 org.testng.internal.Invoker.invokeMethod(Invoker.java:583) 在 org.testng.internal.Invoker.invokeTestMethod(Invoker.java:719) 在 org.testng.internal.Invoker.invokeTestMethods(Invoker.java:989) 在 org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125) 在 org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109) 在 org.testng.TestRunner.privateRun(TestRunner.java:648) 在 org.testng.TestRunner.run(TestRunner.java:505) 在 org.testng.SuiteRunner.runTest(SuiteRunner.java:455) 在 org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450) 在 org.testng.SuiteRunner.privateRun(SuiteRunner.java:415) 在 org.testng.SuiteRunner.run(SuiteRunner.java:364) 在 org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 在 org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:84) 在 org.testng.TestNG.runSuitesSequentially(TestNG.java:1208) 在 org.testng.TestNG.runSuitesLocally(TestNG.java:1137) 在 org.testng.TestNG.runSuites(TestNG.java:1049) 在 org.testng.TestNG.run(TestNG.java:1017) 在 org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115) 在 org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251) 在 org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
【问题讨论】:
-
你初始化你的网络驱动了吗?你有这样的东西吗:driver=new ChromeDriver(options);在你搜索元素之前?
-
Driver.get 工作正常吗?登录测试中?