我有一个简单的Selenium代码,我正在尝试在远程浏览器(浏览器堆栈)上运行它。尝试打开浏览器并登录到应用程序。所以我的代码正在运行,我能够打开浏览器,但无法登录。我在做什么错。 这是显示的错误消息
通过:URLCHECK
失败:注册和注销
java.lang.NullPointerException在 com.testngsample.SampleTest.ARegistrationandLogout(SampleTest.java:40) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)位于 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知源)位于 java.lang.reflect.Method.invoke(未知来源)
答案 0 :(得分:0)
测试脚本似乎未在 ARegistrationandLogout 测试方法中初始化WebDriver对象。我建议添加功能并在 ARegistrationandLogout 测试方法中再次初始化WebDriver实例。
答案 1 :(得分:0)
您正在方法-URLCHECK中初始化WebDriver实例,并在方法-'ARegistrationandLogout'中使用同一实例(未初始化,因此打印了NullPointerException)
由于您正在使用TestNG,因此需要执行以下操作。
public class UnitTestClass {
public WebDriver webDriver = null;
public DesiredCapabilities caps = null;
@BeforeTest
public void beforeTest() {
try {
caps = new DesiredCapabilities();
caps.setCapability("os", "Windows");
caps.setCapability("os_version", "8.1");
caps.setCapability("browser", "Firefox");
caps.setCapability("browser_version", "63.0 beta");
webDriver = new RemoteWebDriver(new URL("http://<USERNAME>:<ACCESS_KEY>@hub-cloud.browserstack.com/wd/hub"), caps);
} catch (Exception e) {
e.printStackTrace();
}
} // BEFORE TEST END
@Test
public void UnitTest() {
webDriver.get("https://www.google.com/");
} // TEST END
@AfterClass
public void afterClass() {
if(webDriver != null){
webDriver.quit();
}
} // AFTER TEST END }
我建议您查看以下在线资源-#guru99,#ToolsQA,#TestNG_Docs
我看到您正在尝试在BrowserStack上进行测试。他们有相同的详细文档。您可以查看TestNG-BrowserStack文档here。他们也有一个示例GIT存储库-#TestNG-BrowserStack-GIT-Repo