internet for extension complemento chrome selenium cross-browser browser-plugin

for - Prueba de plugin de navegador con Selenium



selenium java (2)

La respuesta es , Selenium 2 admite la instalación (remota) de extensiones de navegador.

Chrome y Firefox WebDriver admiten la instalación de extensiones de forma remota. Aquí hay un código de ejemplo para Chrome y Firefox:

Cromo

File file = new File("extension.crx"); // zip files are also accepted ChromeOptions options = new ChromeOptions(); options.addExtensions(file); // Option 1: Locally. WebDriver driver = new ChromeDriver(options); // Option 2: Remotely DesiredCapabilities capabilities = DesiredCapabilities.chrome(); capabilities.setCapability(ChromeOptions.CAPABILITY, options); WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);

Firefox

File file = new File("extension.xpi"); FirefoxProfile firefoxProfile = new FirefoxProfile(); firefoxProfile.addExtension(file); // Option 1: Locally WebDriver driver = new FirefoxDriver(firefoxProfile); // Option 2: Remotely DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability(FirefoxDriver.PROFILE, firefoxProfile); WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);

También he implementado la instalación automatizada de las extensiones de Opera y Safari, y se han fusionado en sentido ascendente:

Ópera

Esta API es similar al FirefoxDriver.

File file = new File("extension.oex"); // Must end with ".oex" OperaProfile operaProfile = new OperaProfile(); operaProfile.addExtension(file); // Option 1: Locally WebDriver driver = new OperaDriver(operaProfile); // Option 2: Remotely DesiredCapabilities capabilities = DesiredCapabilities.opera(); capabilities.setCapability("opera.profile", operaProfile); WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);

Safari

Esta API es similar a ChromeDriver.

File file = new File("extension.safariextz"); SafariOptions options = new SafariOptions(); options.addExtensions(file); // Option 1: Locally. WebDriver driver = new SafariDriver(options); // Option 2: Remotely DesiredCapabilities capabilities = DesiredCapabilities.safari(); capabilities.setCapability(SafariOptions.CAPABILITY, options); WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);

explorador de Internet

Buena suerte.

Estoy escribiendo una aplicación web que tiene un componente de complemento de navegador para Firefox y Chrome. Mi sistema de prueba actual utiliza una serie de pruebas de Selenium creadas a través de Selenium IDE.

¿Es posible tener también selenio para instalar, activar y eliminar los complementos del navegador para Firefox y Chrome (posiblemente también otros navegadores)?

Creo que la mayor preocupación es que la instalación / habilitación del complemento del navegador requiere un reinicio del navegador, y no estoy seguro de si eso pasaría con el selenio apagado.

La adquisición del complemento se maneja fácilmente visitando un enlace interno del sitio a un script php que detecta su navegador.


Respuesta corta: no

La instalación de una extensión del navegador está fuera del alcance del manejo en Selenium.

En Chrome, muestra una ventana modal que no se puede "hacer clic" con Selenium cuando desea agregar un complemento o aplicación. Chrome no requiere reinicio.

Firefox tiene el mismo tipo de comportamiento para solicitar permisos de extensión.

Puedes probar algo que reside fuera del navegador para hacer lo que quieras. Sikuli podría hacer el truco.