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

标签 java selenium

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

相关文章:

EC 返回元素时 python selenium WebDriverWait 不起作用

python - selenium.common.exceptions.WebDriverException : Message: Can not connect to the Service chromedriver. exe 打开 chrome 浏览器

java - 属性文件在 jar 内不起作用

java - 由于React无法在Google Pixel 8.0中创建 Root View ,因此无法启动日志框

java - 有没有办法使用 IBM websphere 在预定时间运行 jar

java - 将具有多个工作表的 Excel 工作簿映射到 XSD

java - OptaPlanner 车辆路线和客户拜访之间的关系

python - Selenium - 很难在页面上找到输入元素(Python)

java - 如何在 Java 中访问普通用户的“我的下载”文件夹?

javascript - 如何在内容可编辑文本框中模拟 'enter'键盘事件