ChromeDriver(功能功能)已弃用

时间:2017-10-17 08:45:28

标签: java selenium-webdriver selenium-chromedriver desiredcapabilities

我将ChromeDriver 2.33WebDriver 3.6.0一起使用,并尝试设置文件下载的默认目录。

Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("download.default_directory", Vars.DOWNLOAD_FOLDER_ROOT);
DesiredCapabilities caps = DesiredCapabilities.chrome();

ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
options.setExperimentalOption("prefs", prefs);
caps.setCapability(ChromeOptions.CAPABILITY, options);
driver = new ChromeDriver(caps);

我在docs中找到了这个:

  

请改用ChromeDriver(ChromeOptions)。创建一个新的ChromeDriver   实例。这些功能将传递给chromedriver服务。

2 个答案:

答案 0 :(得分:24)

我希望您想询问有关避免弃用的解决方法。

不推荐使用Capabilities构建旧方法。现在需要ChromeDriverService&amp; Capabilities作为参数。因此,只需构建一个ChromeDriverService并将其与Capabilities一起传递,即可删除弃用警告。

DesiredCapabilities capabilities = DesiredCapabilities.chrome();

ChromeDriverService service = new ChromeDriverService.Builder()
                    .usingDriverExecutable(new File("/usr/local/chromedriver"))
                    .usingAnyFreePort()
                    .build();
ChromeDriver driver = new ChromeDriver(service, capabilities);

修改 由于现在也弃用ChromeDriver(service, capabilities),您可以使用

DesiredCapabilities capabilities = DesiredCapabilities.chrome();

ChromeDriverService service = new ChromeDriverService.Builder()
                            .usingDriverExecutable(new File("/usr/local/chromedriver"))
                            .usingAnyFreePort()
                            .build();
ChromeOptions options = new ChromeOptions();
options.merge(capabilities);    
ChromeDriver driver = new ChromeDriver(service, options);

但是,您可以完全跳过DesiredCapabilities并仅使用ChromeOptions setCapability方法,例如,

ChromeOptions options = new ChromeOptions();
options.setCapability("capability_name", "capability_value");
driver = new ChromeDriver(options);

答案 1 :(得分:3)

使用Chrome功能的新方法如下:

ChromeOptions options = new ChromeOptions();
    // Proxy proxy = new Proxy();
    // proxy.setHttpProxy("myhttpproxy:3337");
    // options.setCapability("proxy", proxy);
    // options.addArguments("--headless");
    // options.addArguments("--disable-gpu");
    // options.setAcceptInsecureCerts(true);
    // options.addArguments("--allow-insecure-localhost");
    // options.addArguments("--lang=fr-CA");
    options.addArguments("--start-maximized");
driver = new ChromeDriver(options);

您可以通过查看此网站获得更多选项:https://sites.google.com/a/chromium.org/chromedriver/capabilities