selenium - experimental - ¿Pasar ChromeOptions del conductor y DesiredCapabilities?
selenium chromedriver linux (4)
La nueva actualización de Google Chrome hace que este mensaje aparezca en el navegador "Estás usando un indicador de línea de comandos no compatible: --ignore-certificate-errors. La estabilidad y la seguridad se verán afectadas".
De lo que leí en los informes de errores de selenio, la solución temporal es comenzar con el controlador de web con
options.AddArgument("test-type")
Ya estaba pasando Habilidades deseadas al crear el controlador. ¿Cómo puedo pasar ChromeOptions y DesiredCapabilities al controlador?
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("chrome.switches", Arrays.asList("--incognito"));
ChromeOptions options = new ChromeOptions();
options.addArguments("test-type");
WebDriver driver = new ChromeDriver(capabilities);
System.setProperty("webdriver.chrome.driver","<<your chrome path>>");
// To remove message "You are using an unsupported command-line flag: --ignore-certificate-errors.
// Stability and security will suffer."
// Add an argument ''test-type''
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
options.addArguments("test-type");
capabilities.setCapability("chrome.binary", the_entered_chrome_path);
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
driver = new ChromeDriver(capabilities);
¡Funcionó para mí también! ¡Gracias chicos!
FYI: Esta técnica no parece funcionar con 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))
Genera
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
Esto parece funcionar:
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.AddArgument("test-type");
capabilities = (DesiredCapabilities)chromeOptions.ToCapabilities();
new RemoteWebDriver(hubUri, capabilities, TimeSpan.FromSeconds(180));
Estaba peleando con el mismo problema, y finalmente lo resolví. Básicamente, puede agregar ChromeOptions
a DesiredCapabilities
luego crear el controlador con las DesiredCapabilities
. Una vez que lo probé, se deshizo de la pancarta. De todos modos, aquí está el código:
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);
puede intentar esto:
chromeOptions = webdriver.ChromeOptions()
prefs = {"profile.managed_default_content_settings.images":2}
chromeOptions.add_experimental_option("prefs",prefs)
driver = webdriver.Chrome(chrome_options=chromeOptions)
la información relacionada se puede encontrar aquí: http://nullege.com/codes/search/selenium.webdriver.ChromeOptions.add_experimental_option