我们已经用我们现有的框架实现了Selenium Grid(分布式测试)概念,同时实现了它产生的空指针异常 截至目前,我有一个包,有三个类文件(Baseclass,Loginclass,testcase)
Baseclass - 获取我想要的驱动程序并导航到应用程序
public class Loginclass extends Baseclass {
public Loginclass navigateToLogin() {
Navigate("qa");
return new Loginclass();
}
}
并在Loginclass中导航到该位置(QA或UAT等)
public class TestcaseSearch extends Loginclass {
@BeforeTest
public final void Startup() throws MalformedURLException {
Baseclass baseClass = new Baseclass();
baseClass.GetDriver;
}
@Test
public void fieldsSearch(String username, String password)
throws Exception {
Loginclass loginClass = new Loginclass();
navigateToLogin();
}
}
Testcase我们有一个测试用例并执行相同的
idsDriver.navigate().to(navigateToThisUrl);
执行上面的操作时会产生空指针异常
基类:Navigate("qa");
登录类:java.lang.NullPointerException
at com.Baseclass.Navigate(Baseclass.java:11)
at com.Loginclass.Navigate(Loginclass.java:1)
at com.TestcaseSearch.Navigate(TestcaseSearch.java:1)
at com.Loginclass.navigateToLogin(Loginclass.java:4)
at com.TestcaseSearch.fieldsSearch(TestcaseSearch.java:11)
让我知道如何纠正这个
异常输出
{{1}}
答案 0 :(得分:1)
您的myDriver
实例为空,因为您在Baseclass
中创建了Startup()
的新实例,该实例将myDriver
设置为自身,而不是实际的测试类实例。
同样,您无需在Loginclass
中创建新的fieldsSearch
,因为TestcaseSearch
是Loginclass
的子类:
public class TestcaseSearch extends Loginclass {
@BeforeTest
public final void Startup() throws MalformedURLException {
GetDriver();
}
@Test
public void fieldsSearch(String username, String password)
throws Exception {
navigateToLogin();
}
}