坚持在一个单独的类中为驱动程序创建一个单独的类(功能、允许通知、打开的 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;
}
你可以这样做:
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
类才能添加多线程支持。