Capacidades deseadas
Capacidades deseadas es una clase de Selenium que se utiliza para establecer las propiedades de los navegadores para realizar pruebas entre navegadores de aplicaciones web. Almacena las capacidades como pares clave-valor y estas capacidades se utilizan para establecer propiedades del navegador como el nombre del navegador, la versión del navegador, la ruta del controlador del navegador en el sistema, etc. para determinar el comportamiento del navegador en tiempo de ejecución.
- La capacidad deseada también se puede utilizar para configurar la instancia del controlador de Selenium WebDriver.
- Podemos configurar una instancia de controlador como FirefoxDriver, ChromeDriver, InternetExplorerDriver utilizando las capacidades deseadas.
En este tutorial, aprenderá:
- ¿Qué es la capacidad deseada?
- ¿Por qué necesitamos las capacidades deseadas?
- Diferentes tipos de métodos de capacidades deseadas
- Ejemplo de método de capacidad de configuración
¿Por qué necesitamos las capacidades deseadas?
Las capacidades deseadas son necesarias porque cada escenario de prueba debe ejecutarse en algún entorno de prueba específico. El entorno de prueba puede ser un navegador web, dispositivo móvil, emulador móvil, simulador móvil, etc. La clase de capacidades deseadas nos ayuda a decirle al controlador web qué entorno vamos a utilizar en nuestro script de prueba.
El método setCapability de la clase DesiredCapabilities, que se explica en la parte posterior del tutorial, se puede usar en Selenium Grid. Se utiliza para realizar una ejecución paralela en diferentes configuraciones de máquina.
Ej: cuadrícula
Se utiliza para configurar las propiedades del navegador (por ejemplo, Chrome, IE), el nombre de la plataforma (por ejemplo, Linux, Windows) que se utilizan al ejecutar los casos de prueba.
En el caso de la automatización móvil, dado que realizamos las pruebas en diferentes variedades de dispositivos móviles, se puede configurar la Versión de Plataforma de Plataforma Móvil (ej. IOS, Android) (Ej. 3.x, 4.x en Android).
El ejemplo de emulador anterior muestra el conjunto de plataforma que es Android y el conjunto de versión de plataforma que es IceCream Sandwich (4.x).
Las capacidades deseadas son más útiles en casos como:
- En la automatización de aplicaciones móviles, donde se pueden configurar las propiedades del navegador y las propiedades del dispositivo.
- En Selenium grid cuando queremos ejecutar los casos de prueba en un navegador diferente con diferentes sistemas operativos y versiones.
Diferentes tipos de métodos de capacidades deseadas
Aquí veremos un tipo diferente de métodos de capacidades deseados y veremos cómo usar uno de estos métodos "método setCapability".
- getBrowserName ()
public java.lang.String getBrowserName ()
- setBrowserName ()
public void setBrowserName (java.lang.String browserName)
- getVersion ()
public java.lang.String getVersion ()
- setVersion ()
public void setVersion (versión java.lang.String)
- getPlatform ()
getPlatform de plataforma pública ()
- setPlatform ()
plataforma pública setPlatform ()
- Método getCapability
El método getCapability de la clase DesiredCapabilities se puede utilizar para obtener la capacidad que se utiliza actualmente en el sistema.
public java.lang.Object getCapability (java.lang.String capacityName)
- Método setCapability ()
El método setCapability () de la clase Capacidades deseadas se usa para establecer la propiedad de un entorno de prueba como el nombre del dispositivo, el nombre y la versión del sistema operativo, el nombre y la versión del navegador, la ruta absoluta de la aplicación bajo prueba (el archivo .apk de la aplicación Android bajo prueba), la actividad de la aplicación (en Android) y el paquete de aplicaciones (en Java).
El "método setCapability" en Java tiene las siguientes declaraciones:
setCapability: public void setCapability (java.lang.String capacityName, valor booleano)
setCapability: public void setCapability (java.lang.String capacityName, java.lang.String valor)
setCapability: public void setCapability (java.lang.String capacityName, valor de la plataforma)
setCapability: public void setCapability (clave java.lang.String, valor java.lang.Object)
Ejemplo de método de capacidad de configuración
Consideremos un ejemplo en el que queremos ejecutar nuestro caso de prueba en el navegador Internet Explorer para abrir el sitio web www.gmail.com utilizando Selenium Webdriver.
A continuación se muestra el código.
importar org.openqa.selenium.WebDriver;importar org.openqa.selenium.ie.InternetExplorerDriver;clase pública IEtestforDesiredCapabilities {public static void main (String [] args) {Controlador WebDriver = nuevo InternetExplorerDriver ();driver.manage (). window (). maximizar ();driver.get ("http://gmail.com");driver.quit ();}}
Ahora ejecute este código de Eclipse y revise la consola.
Producción:
Lanzará el siguiente error cuando se ejecute el código anterior. El error ocurre porque la ruta al controlador del navegador (IE en el caso anterior) no está configurada. El navegador no pudo ser localizado por el código de selenio.
La ruta al ejecutable del controlador debe ser establecida por la propiedad del sistema webdriver.ie.driver; para obtener más información, consulte http://code.google.com/p/selenium/wiki/InternetExplorerDriver. La última versión se puede descargar desde http://code.google.com/p/selenium/downloads/list
11 de diciembre de 201212: 59: 43PM org.openqa.selenium.ie.InternetExplorerDriverServer initializeLib
ADVERTENCIA: Este método para iniciar el controlador IE está obsoleto y se eliminará en selenium 2.26. Descargue IEDriverServer.exe de http://code.google.com/p/selenium/downloads/list y asegúrese de que esté en su PATH.
Solucion :
La solución para el problema anterior se da en la sección de advertencia del error en sí.
- Descargue el servidor independiente Internet ExplorerDriver para 32 bits o 64 bits.
- Guarde el controlador en una ubicación adecuada en el sistema.
- Establezca la ruta del controlador mediante el método System.setProperty .
- Se utiliza para configurar el controlador IE con la propiedad webdriver. Ayuda a localizar el archivo ejecutable del controlador que está almacenado en la ubicación del sistema. (Por ejemplo: "C: \ IEDriverLocation \ IEDriver.exe")
importar org.openqa.selenium.WebDriver;importar org.openqa.selenium.ie.InternetExplorerDriver;importar org.openqa.selenium.remote.DesiredCapabilities;clase pública IEtestforDesiredCapabilities {public static void main (String [] args) {// se usa para definir la capacidad de IECapacidades DesiredCapabilities = DesiredCapabilities.internetExplorer ();capacidades.setCapabilidad (CapabilityType.BROWSER_NAME, "IE");capacidades.setCapability (InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, verdadero);System.setProperty ("webdriver.ie.driver", "C: \\ IEDriverServer.exe");// se usa para inicializar el controlador IEControlador WebDriver = nuevo InternetExplorerDriver (capacidades);driver.manage (). window (). maximizar ();driver.get ("http://gmail.com");driver.quit ();}}
Explicación del código:
En el código de arriba,
- Las declaraciones de importación son para importar los paquetes requeridos para el controlador web selenium, paquetes requeridos para el controlador de Internet Explorer, paquetes para las capacidades deseadas.
- setCapability toma las diversas capacidades como variables de entrada que luego son utilizadas por el controlador web para iniciar la aplicación en el entorno deseado.
- setProperty se utiliza para establecer la ruta donde se encuentra el controlador. A continuación, Web Driver localiza el controlador necesario.
- El sitio web de Gmail se abre en el navegador Internet Explorer mediante el método "get".
Producción:
El caso de prueba en el navegador Internet Explorer se ejecutará correctamente con Selenium Webdriver.
Conclusión
La clase de Capacidades Deseadas ayudará a establecer un entorno para definir el comportamiento del navegador / entorno en el que se puede ejecutar la prueba.
Ayuda a lanzar nuestra aplicación en el entorno deseado con las capacidades que deseamos utilizar.
Este artículo es una contribución de Krithika Ramkumar.