ruby - Chrome 62 y Flash
google-chrome selenium (2)
Esto es lo que funcionó para mí al final
Capybara.register_driver :chrome do |app|
chrome_binary = ''/Applications/Google Chrome.app''
prefs = {"profile.default_content_setting_values.plugins" => 1,
"profile.content_settings.plugin_whitelist.adobe-flash-player" => 1,
"profile.content_settings.exceptions.plugins.*,*.per_resource.adobe-flash-player" => 1,
"PluginsAllowedForUrls" => "hendricks-as3.localhost.bbc.co.uk"
}
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => { "binary" => chrome_binary + ''/Contents/MacOS/Google Chrome'', "prefs" => prefs })
Capybara::Selenium::Driver.new(app, :browser => :chrome, :desired_capabilities => capabilities)
end
Leer esta documentación me ayudó a darme cuenta de qué hacer. (también la respuesta de DebanjanB me ayudó con las opciones de perfil específicas, pero como en Java no es bueno para mis necesidades específicas, gracias :-))
https://sites.google.com/a/chromium.org/chromedriver/capabilities
Tengo una aplicación basada en Flash que necesito probar usando Cucumber. Como el flash no está habilitado de forma predeterminada, necesito habilitarlo antes de cada prueba y poner en la lista blanca la URL que creo. Si detengo la prueba en su fase de fondo, puedo configurar manualmente estas opciones.
Sin embargo, ¿cómo puedo automatizar este enfoque? He buscado agregar
options
y
preferences
, pero parece que todavía no puedo ponerme a trabajar.
Esta es mi configuración estándar en un archivo env.rb
Capybara.register_driver :chrome do |app|
chrome_binary = ''/Applications/Google Chrome.app''
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => { "binary" => chrome_binary + ''/Contents/MacOS/Google Chrome'' })
Capybara::Selenium::Driver.new(app, :browser => :chrome, :desired_capabilities => capabilities, :options => options)
end
La lectura adicional ha resaltado opciones como
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument(''arg-here'')
prefs = {"enable flash here ? "}
options.add_experimental_option("prefs", prefs)
La
add_experimental_option
arroja
undefined method add_experimental_option for #<Selenium::WebDriver::Chrome::Options:0x007fca30c10988>
¿Alguien ha automatizado este proceso?
Para habilitar
Flash
antes de cada prueba y
WhiteList
la url, puede usar el siguiente bloque de código para configurar la instancia de
WebDriver
para permitir
Flash
:
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("profile.default_content_setting_values.plugins", 1);
prefs.put("profile.content_settings.plugin_whitelist.adobe-flash-player", 1);
prefs.put("profile.content_settings.exceptions.plugins.*,*.per_resource.adobe-flash-player", 1);
prefs.put("PluginsAllowedForUrls", "https://your_url.com");
options.setExperimentalOption("prefs", prefs);
WebDriver driver = new ChromeDriver(options);
Aquí puede encontrar una discusión detallada sobre
Manage Flash in Chrome
y
PluginsAllowedForUrls
Actualización:
No ha mencionado en su comentario a través de qué cliente no puede encontrar
setExperimentalOption
o
set_experimental_option
.
Aquí está la instantánea de mi IDE que no tiene errores / advertencias:
Y aquí está el JavaDoc :