java - 以下代码的 selenium webdriver 中的空指针异常
问题描述
public class NewTest
{
@FindBy(id="btnSearch")
public WebElement search;
public WebDriver driver;
@Test
public void openMyBlog() {
driver.manage().window().maximize();
driver.get("url");
search.click();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@BeforeClass
public void beforeClass() {
System.setProperty("webdriver.chrome.driver", "D:\\Driver\\chromedriver_win32\\chromedriver.exe");
driver = new ChromeDriver();
}
@AfterClass
public void afterClass() {
driver.close();
}
}
收到如下错误:
[RemoteTestNG] detected TestNG version 6.14.2
Starting ChromeDriver 2.45.615291 (ec3682e3c9061c10f26ea9e5cdcf3c53f3f74387) on port 44992
Only local connections are allowed.
Jan 29, 2019 12:59:55 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
FAILED: openMyBlog
java.lang.NullPointerException
at testngproject.NewTest.openMyBlog(NewTest.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:580)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:716)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:988)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
at org.testng.TestRunner.privateRun(TestRunner.java:648)
at org.testng.TestRunner.run(TestRunner.java:505)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:455)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:415)
at org.testng.SuiteRunner.run(SuiteRunner.java:364)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:84)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1208)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1137)
at org.testng.TestNG.runSuites(TestNG.java:1049)
at org.testng.TestNG.run(TestNG.java:1017)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:114)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
===============================================
Default test
Tests run: 1, Failures: 1, Skips: 0
===============================================
===============================================
Default suite
Total tests run: 1, Failures: 1, Skips: 0
===============================================
我尽力解决这个问题,但没有这样做。任何人都可以帮助我解决这个收到的空指针异常的解决方案
我尽力解决这个问题,但没有这样做。任何人都可以帮助我解决这个收到的空指针异常的解决方案。
解决方案
在您的程序中添加以下代码并尝试重新运行:
NewTest() {
PageFactory.initElements(driver, this);
}
当您使用 POM(页面对象模型)时,您需要在使用它之前初始化所有元素,并且 PageFactory.initElements() 会这样做。
推荐阅读
- vue.js - 如何在 Vue-Quill 中添加按钮撤消/重做?
- python - TensorFlowProbability 中的范围界定
- django - 与 django-filter 斗争:NoReverseMatch 多个字段
- linux - 在 SELinux 中添加访问受限的用户或降级现有用户
- javascript - React Native 构建 .ipa 文件
- r - 使用“移动”包计算突发利用率分布的体积面积
- android - 我有一个芯片组。如果没有选择任何芯片,则会显示一个列表,我希望在未选中芯片时显示相同的芯片
- node.js - 无法安装松露快递盒?
- sql-server - 在 SQL Server 中创建输出多个文件而不是追加到一个文件的作业
- python - 阅读台词并制作字典