如何使用来自单独类的驱动程序初始化代码并在同一包和不同包的不同类中使用它

问题描述 投票:0回答:1

坚持在一个单独的类中为驱动程序创建一个单独的类(功能、允许通知、打开的 Web 浏览器),并且使用它是同一包和不同包的不同类

需要在不同的类上获取它

代码:

public class Permission {
    
    public static ChromeDriver accesspermission() {
        
        DesiredCapabilities caps = new DesiredCapabilities();
        ChromeOptions options = new ChromeOptions();

        HashMap < String, Integer > conentSettings = new HashMap < String, Integer > ();
        HashMap < String, Object > profile = new HashMap < String, Object > ();
        HashMap < String, Object > prefs = new HashMap < String, Object > ();

        conentSettings.put("notifications", 1);
        conentSettings.put("geolocation", 1);
        conentSettings.put("media_stream", 1);

        profile.put("managed_default_content_settings", conentSettings);
        prefs.put("profile", profile);
        options.setExperimentalOption("prefs", prefs);
        caps.setCapability(ChromeOptions.CAPABILITY, options);

        ChromeDriver driver = new ChromeDriver(options);
        driver.manage().window().maximize();
        driver.manage().deleteAllCookies();

        driver.get("URL");
        
     }
        return driver;
}
java selenium-webdriver automation driver
1个回答
0
投票

你可以这样做:

public class MyDriverStuff {

  WebDriver driver = null;

  public static WebDriver getDriver(){
    if(driver == null){
      // configure and create your driver here
      driver = new ChromeDriver();
    }
    return driver;
  }


  public static void terminateDriver(){
    driver.quit();
    driver = null;
  }
}

免责声明1 - 这是最简单的情况。您需要添加不同的可能异常情况处理。

免责声明 2 - 我没有使用 IDE 编写此代码,因此可能存在语法错误。

免责声明 3 - 此案例不适用于并行执行案例。您必须阅读

ThreadLocal
类才能添加多线程支持。

© www.soinside.com 2019 - 2024. All rights reserved.