La nouvelle mise à jour de Google Chrome provoque ce message dans le navigateur "Vous utilisez un indicateur de ligne de commande non pris en charge: --ignore-certificate-errors. La stabilité et la sécurité en pâtiront."
D'après ce que j'ai lu sur les rapports de bogue Selenium, la solution temporaire consiste à démarrer WebDriver avec
options.AddArgument("test-type")
Je passais déjà DesiredCapabilities lors de la création du pilote. Comment puis-je transmettre les options ChromeOptions et DesiredCapabilities au pilote?
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("chrome.switches", Arrays.asList("--incognito"));
ChromeOptions options = new ChromeOptions();
options.addArguments("test-type");
WebDriver driver = new ChromeDriver(capabilities);
Je luttais contre le même problème et je l'ai finalement résolu. En gros, vous pouvez ajouter ChromeOptions
à DesiredCapabilities
, puis créer le pilote avec DesiredCapabilities
. Une fois que j'ai essayé, il s'est débarrassé de la bannière. Quoi qu'il en soit, voici le code:
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
options.addArguments("test-type");
capabilities.setCapability("chrome.binary", "<Path to binary>");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
webDriver = new ChromeDriver(capabilities);
Ajout de ma réponse pour aider les utilisateurs à la recherche de ChromeOptions and Capabilities avec la dernière version de Selenium.
Le passage de capacités au constructeur ChromeDriver est obsolète à partir de v3.6.0. Référence du code source
ChromeDriver(Capabilities capabilities)
Deprecated.
Use ChromeDriver(ChromeOptions) instead.
Au lieu de cela, vous devriez commencer à utiliser quelque chose comme ci-dessous:
ChromeOptions options = new ChromeOptions();
options.setAcceptInsecureCerts(true);
options.setUnhandledPromptBehaviour(UnexpectedAlertBehaviour.ACCEPT);
WebDriver driver = new ChromeDriver(options)
Vous pouvez toujours définir vos fonctionnalités, mais veillez à les fusionner avec ChromeOptions comme ci-dessous:
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("something", true);
ChromeOptions options = new ChromeOptions();
options.addArguments("disable-infobars");
options.merge(capabilities);
Vous pouvez consulter l'article sur Selenium ChromeOptions pour une utilisation plus détaillée de ChromeOptions et des fonctionnalités.
peut être essayer ceci:
chromeOptions = webdriver.ChromeOptions()
prefs = {"profile.managed_default_content_settings.images":2}
chromeOptions.add_experimental_option("prefs",prefs)
driver = webdriver.Chrome(chrome_options=chromeOptions)
des informations connexes peuvent être trouvées ici: http://nullege.com/codes/search/Selenium.webdriver.ChromeOptions.add_experimental_option
FYI: cette technique ne semble pas fonctionner avec Chrome 41.0.2272.101m.
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.AddExcludedArgument("ignore-certificate-errors");
capabilities = DesiredCapabilities.Chrome();
capabilities.SetCapability(ChromeOptions.Capability, chromeOptions);
new RemoteWebDriver(hubUri, capabilities, TimeSpan.FromSeconds(180))
Génère
09:39:24.110 WARN - Exception: unknown error: cannot parse capability: chromeOptions
from unknown error: unrecognized chrome option: Arguments
(Driver info: chromedriver=2.10.267521,platform=Windows NT 6.3 x86_64)
(WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 1.52 seconds
Build info: version: '2.43.0', revision: '597b76b', time: '2014-09-09 20:52:14'
System info: Host: 'T10-E8-GREGPE', ip: '10.123.160.70', os.name: 'Windows 8.1', os.Arch: 'x86', os.version: '6.3', Java.version: '1.8.0_40'
Driver info: org.openqa.Selenium.chrome.ChromeDriver
Cela semble fonctionner:
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.AddArgument("test-type");
capabilities = (DesiredCapabilities)chromeOptions.ToCapabilities();
new RemoteWebDriver(hubUri, capabilities, TimeSpan.FromSeconds(180));
public void setUp() throws Exception
{
System.out.println("Launching Google browser");
System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("disable-infobars");
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("profile.default_content_setting_values.automatic_downloads", 1);
options.setExperimentalOption("prefs", prefs);
prefs.put("download.default_directory", "C:\\Downloads");
driver = new ChromeDriver(options);
driver.manage().timeouts().implicitlyWait(100, TimeUnit.SECONDS);
driver.manage().window().maximize();
}