ruby google-chrome selenium flash cucumber

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 :