for - Prueba de plugin de navegador con Selenium
selenium java (2)
La respuesta es Sí , 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:
- OperaDriver: https://github.com/operasoftware/operadriver/pull/93
- SafariDriver: https://github.com/SeleniumHQ/selenium/pull/87
Ó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.