google-chrome - desactivar - deshabilitar flash en chrome 2018
Deshabilitar flash en Chrome (3)
Una de nuestras aplicaciones internas tiene un objeto flash en una página. Necesito probar uno de los casos de esquina cuando no hay un complemento de flash disponible / instalado en el navegador: ni el plugin de adobe flash player interno (pepperflash) ni todo el sistema .
De acuerdo con la lista de la página de documentación Lista de interruptores de línea de Chromium , hay un interruptor de línea de comando relevante:
--disable-bundled-ppapi-flash
- Desactiva la versión PPAPI incluida de Flash.
Pero, esto apagaría solo el plugin chrome interno de pepperflash.
De acuerdo con la forma de ejecutar Chrome / Firefox con el complemento flash deshabilitado de la secuencia de comandos watir? thread, también hay --disable-internal-flash
switch, pero también es relevante para el plugin interno de chrome.
La documentación de Browserstack sugiere seguir el principio "la guillotina es la mejor cura para la caspa" y deshabilitar todos los complementos mediante el uso --disable-plugins
parámetro --disable-plugins
:
Para deshabilitar Flash en Chrome, crea una función chromeOptions y pasa el argumento --disable-plugins a la capacidad.
¿Hay alguna forma de desactivar todos los complementos de Flash sin deshabilitar todos los complementos en Chrome?
Por ejemplo, sería perfecto tener una preferencia para listar todos los complementos que se deben desactivar:
plugins.disabled: [''Adobe Flash Player'', ''pepperflash'']
Lo encontré, hay otro conmutador que le dice a Chrome que no cargue complementos externos en absoluto:
--disable-plugins-discovery
Desactiva el descubrimiento de plug-ins de terceros. Cargue de forma efectiva solo los que se envían con el navegador más los de terceros según lo especificado por --extra-plugin-dir y --load-plugin switches.
Al combinar --disable-internal-flash
y --disable-plugins-discovery
, he logrado desactivar todos los complementos de Flash en Chrome.
Para deshabilitar Flash Player, escriba:
chrome:plugins
En tu barra de URL. Allí verá una lista de todos sus complementos, incluido Flash Player. Presiona el botón que dice "deshabilitar" y ¡listo!
chrome: // plugins ya no existe en Chrome 57 y superior. El método propuesto por alecxe en respuesta aceptada lamentablemente no funciona para mí.
Pude solucionar este problema activando la emulación móvil en ChromeDriver. El código de ejemplo para algunos idiomas se puede encontrar aquí: https://sites.google.com/a/chromium.org/chromedriver/mobile-emulation
Código de ejemplo para Java de la página anterior:
Map<String, String> mobileEmulation = new HashMap<String, String>();
mobileEmulation.put("deviceName", "Google Nexus 5");
Map<String, Object> chromeOptions = new HashMap<String, Object>();
chromeOptions.put("mobileEmulation", mobileEmulation);
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
WebDriver driver = new ChromeDriver(capabilities);
También puede especificar su propia resolución de pantalla, proporción de píxeles e incluso userAgent.
Map<String, Object> deviceMetrics = new HashMap<String, Object>();
deviceMetrics.put("width", 1920);
deviceMetrics.put("height", 1080);
deviceMetrics.put("pixelRatio", 1.0);
Map<String, Object> mobileEmulation = new HashMap<String, Object>();
mobileEmulation.put("deviceMetrics", deviceMetrics);
mobileEmulation.put("userAgent", "Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19");
Map<String, Object> chromeOptions = new HashMap<String, Object>();
chromeOptions.put("mobileEmulation", mobileEmulation);
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
WebDriver driver = new ChromeDriver(capabilities);
Esto funcionará también con RemoteWebDriver.