web-dev-qa-db-fra.com

ChromeDriver (capacités) est obsolète

J'utilise ChromeDriver 2.33 avec WebDriver 3.6.0 et essayez de définir le répertoire par défaut pour le téléchargement de fichiers.

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);

J'ai trouvé cela dans les documents:

Utilisez plutôt ChromeDriver (ChromeOptions). Crée une nouvelle instance ChromeDriver. Les capacités seront transmises au service chromedriver.

7
plaidshirt

J'espère que vous vouliez poser des questions sur la solution de contournement pour éviter la dépréciation.

L'ancienne méthode de construction avec Capabilities est obsolète. Maintenant, il prend un ChromeDriverService & Capabilities comme paramètres. Donc, construisez juste un ChromeDriverService et passez le même avec votre Capabilities pour supprimer l'avertissement de dépréciation.

DesiredCapabilities capabilities = DesiredCapabilities.chrome();

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

EDIT: Puisque ChromeDriver(service, capabilities) est désormais obsolète, vous pouvez utiliser,

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);

Cependant, vous pouvez ignorer complètement DesiredCapabilities et utiliser uniquement ChromeOptions avec la méthode setCapability comme,

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

La nouvelle façon d'utiliser les capacités chrome est la suivante:

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);

Vous pouvez obtenir plus d'options en consultant ce site: https://sites.google.com/a/chromium.org/chromedriver/capabilities

3
Jean-François Gagnon