我对我目前正在开发的 selenium 框架有一个基本的疑问。我有一个驱动程序类,其中 chrome-driver 已初始化。
public class page1 {
private static WebDriver driver;
protected static String WINDOWS_DRIVER = "/chromedriver/windows/chromedriver.exe";
public static WebDriver initi(){
if(driver == null){
System.setProperty("webdriver.chrome.driver",page1.class.getResource(WINDOWS_DRIVER).getFile());
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
options.addArguments("test-type");
options.addArguments("--start-maximized");
options.addArguments("--ignore-certificate-errors");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
driver=new ChromeDriver(capabilities);
}
return driver;
}
}
我有 2 个类扩展了驱动程序类。
public class page2 extends page1 {
public WebDriver driver;
public void testmethod1(){
driver=super.initi();
driver.navigate().to("https://www.google.co.in/");
}
}
public class page3 extends page1 {
public WebDriver driver;
public void testmethod2(){
driver=super.initi();
driver.navigate().to("https://in.yahoo.com/?p=us");
}
}
最后,我有一个测试套件类,我想在其中创建一个浏览器实例并调用所有 3 个类的方法。
public class finalclass extends page1{
public page2 _page2;
public page3 _page3;
public WebDriver driver;
@Test
public void finaltest(){
driver=super.initi();
driver.get("http://www.rediff.com/");
_page2.testmethod1();
_page3.testmethod2();
}
}
函数调用时抛出空指针异常错误。你能帮忙吗?
- 在
page1
类中创建一个构造函数并在其中实例化驱动程序。
- 继承后不要在每个类中实例化驱动程序。而是使用继承的。
查看示例 here
我是一名优秀的程序员,十分优秀!