gpt4 book ai didi

java - 如何在selenium框架中的不同类之间传递相同的浏览器实例

转载 作者:太空宇宙 更新时间:2023-11-04 13:41:31 25 4
gpt4 key购买 nike

我对我目前正在开发的 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

关于java - 如何在selenium框架中的不同类之间传递相同的浏览器实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31216700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com