Java 通过Selenium在JUnit 5中使用@Before注释的NullPointerException
下面您可以看到@Before startBrowser()创建webDriverJava 通过Selenium在JUnit 5中使用@Before注释的NullPointerException,java,selenium,selenium-webdriver,nullpointerexception,junit5,Java,Selenium,Selenium Webdriver,Nullpointerexception,Junit5,下面您可以看到@Before startBrowser()创建webDriver public WebDriver webDriver; @Before public void startBrowser(){ System.setProperty("webdriver.gecko.driver", driverPath); FirefoxOptions firefoxOptions = new FirefoxOptions();
public WebDriver webDriver;
@Before
public void startBrowser(){
System.setProperty("webdriver.gecko.driver", driverPath);
FirefoxOptions firefoxOptions = new FirefoxOptions();
firefoxOptions.setCapability("marionette", true);
/* ---> */ webDriver = new FirefoxDriver(firefoxOptions);
}
@Test
void navigateToUrl() {
webDriver.get("http://demo.guru99.com/selenium/guru99home/");
}
但我在@Test void navigateToUrl()中得到一个空指针
但是@Before应该运行正常吗
使用注释公共void方法
@Before导致该方法在测试方法之前运行
@然而,在这之前,每种方法都是有效的。但我只想用@Before!
此错误消息
java.lang.NullPointerException
at demo.TestTest.navigateToUrl(TestTest.java:42)
.
at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:69)
…表示引发了NullPointerException
根据中的文档,最常见的注释有:
@测试
@ParameterizedTest
@RepeatedTest
@DisplayName
@beforeach
@AfterEach
@BeforeAll
@毕竟
@Tag
@已禁用
解决方案
JUnit5中不支持As
@Before
注释,您必须将其替换为JUnit5中@Yeahseol注释的@beforeach
或@BeforeAll
@JUnit5不支持Before您使用的junit版本是什么?在版本5和更高版本中,您应该在每个之前使用
@,而在其他版本中,您将在
@之前使用@yeahseol是正确的(因为您使用的是Junit5,如堆栈跟踪中所示)。为什么必须在
之前使用@?
java.lang.NullPointerException
at demo.TestTest.navigateToUrl(TestTest.java:42)
.
at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:69)