java 如何使用驱动程序初始化代码从一个单独的类和使用它在不同的类相同的包和不同的包

tcomlyy6  于 2023-02-18  发布在  Java
关注(0)|答案(1)|浏览(101)

坚持在一个单独的类中为驱动程序(功能、允许通知、打开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;
}
w8ntj3qf

w8ntj3qf1#

你可以这样做:

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类的内容以添加多线程支持。

相关问题