Capacidades deseadas en Selenium Controlador web
¿Qué son las capacidades deseadas?
Capacidades deseadas es una clase en Selenium se utiliza para establecer propiedades de los navegadores para realizar pruebas de aplicaciones web entre navegadores. Almacena las capacidades como pares clave-valor y estas capacidades se utilizan para configurar 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 Controlador web.
- Podemos configurar la instancia del controlador como FirefoxDriver, ChromeDriver, InternetExplorerDriver utilizando las capacidades deseadas.
¿Por qué necesitamos las capacidades deseadas?
Capacidades deseadas son necesarios porque cada Pruebas El escenario debe ejecutarse en algún entorno de prueba específico. El entorno de prueba puede ser un navegador web, Móvil dispositivo, emulador móvil, simulador móvil, etc. La clase de capacidades deseadas nos ayuda a indicarle al controlador web qué entorno vamos a utilizar en nuestro script de prueba.
El sistema método setCapability de la clase DesiredCapabilities, que se explica en la parte posterior del tutorial, se puede utilizar en Selenium Red. 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 durante la ejecución de los casos de prueba.
En el caso de la automatización móvil, a medida que realizamos las pruebas en diferentes variedades de dispositivos móviles, la Plataforma Móvil (ej. iOS, Android) Versión de plataforma (Ej. 3.x, 4.x en Android) se puede ajustar.
El ejemplo del emulador anterior muestra el conjunto de plataformas, que es Android, y la versión de la 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.
- In Selenium grid cuando queremos ejecutar los casos de prueba en un navegador diferente con diferentes sistemas operativos y versiones.
Tipos de métodos de capacidades deseadas
Aquí veremos un tipo diferente de métodos de capacidades deseadas y veremos cómo usar uno de este método "Método setCapability”.
#1) obtenerNombredelNavegador()
public java.lang.String getBrowserName()
# 2) establecer nombre del navegador ()
public void setBrowserName(java.lang.String browserName)
#3) obtenerVersión()
public java.lang.String getVersion()
#4) establecerVersión()
public void setVersion(java.lang.String version)
#5) obtenerPlataforma()
public Platform getPlatform()
#6) establecerPlataforma()
public Platform setPlatform()
#7) Método getCapability()
El método getCapability() de la clase DesiredCapabilities se puede utilizar para obtener la capacidad que está en uso actualmente en el sistema.
public java.lang.Object getCapability(java.lang.String capabilityName)
#8) Método setCapability()
El sistema método setCapability() de la clase Desired Capabilities se utiliza 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 Android aplicación bajo prueba), Actividad de la aplicación (en Android) y paquete de aplicaciones (en Java).
“método setCapability” in Java tiene las siguientes declaraciones:
setCapability : public void setCapability(java.lang.String capabilityName,boolean value)
setCapability :public void setCapability(java.lang.String capabilityName,java.lang.String value)
setCapability :public void setCapability(java.lang.String capabilityName,Platform value)
setCapability :public void setCapability(java.lang.String key,java.lang.Object value)
Establecer capacidad en Selenium Ejemplo
Consideremos un ejemplo en el que queremos ejecutar nuestro Caso de prueba En el navegador Internet Explorer, abra el sitio web www.gmail.com usando Selenium Controlador web.
A continuación se muestra el código.
import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetExplorerDriver; public class IEtestforDesiredCapabilities { public static void main(String[] args) { WebDriver driver = new InternetExplorerDriver(); driver.manage().window().maximize(); driver.get("http://gmail.com"); driver.quit(); } }
Ahora ejecuta este código desde Eclipse y echa un vistazo a la consola.
Salida:
Se generará el siguiente error cuando se ejecute el código anterior. El error se produce porque no se ha establecido la ruta al controlador del navegador (IE en el caso anterior). El código de Selenium no pudo localizar el navegador.
The path to the driver executable must be set by the webdriver.ie.driver system property; formore information, see http://code.google.com/p/selenium/wiki/InternetExplorerDriver. The latest version can be downloaded from http://code.google.com/p/selenium/downloads/list Dec 11, 201212:59:43PM org.openqa.selenium.ie.InternetExplorerDriverServer initializeLib WARNING: This method of starting the IE driver is deprecated and will be removed in selenium 2.26. Please download the IEDriverServer.exe from http://code.google.com/p/selenium/downloads/list and ensure that it is in your PATH.
Solución:
La solución al problema anterior se proporciona en la sección de advertencia del propio error.
- Descargue el servidor independiente Internet ExplorerDriver para 32 o 64 bits.
- Guarde el controlador en una ubicación adecuada del sistema.
- Establezca la ruta para el controlador usando el Sistema.setProperty método.
- 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. (Ejemplo:”C:\IEDriverLocation\IEDriver.exe”)
import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.remote.DesiredCapabilities; public class IEtestforDesiredCapabilities { public static void main(String[] args) { //it is used to define IE capability DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer(); capabilities.setCapability(CapabilityType.BROWSER_NAME, "IE"); capabilities.setCapability(InternetExplorerDriver. INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true); System.setProperty("webdriver.ie.driver", "C:\\IEDriverServer.exe"); //it is used to initialize the IE driver WebDriver driver = new InternetExplorerDriver(capabilities); driver.manage().window().maximize(); 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 necesarios para el controlador web Selenium, los paquetes necesarios para el controlador de Internet Explorer y los paquetes para las capacidades deseadas.
- setCapability toma las diversas capacidades como variables de entrada que luego utiliza el controlador web para iniciar la aplicación en el entorno deseado.
- setProperty se utiliza para establecer la ruta donde se encuentra el controlador. Web Driver luego localiza el controlador requerido.
- El sitio web de Gmail se abre en el navegador Internet Explorer mediante el método “get”.
Salida:
El caso de prueba en el navegador Internet Explorer se ejecutará correctamente utilizando Selenium Controlador web.
Conclusión
La clase Desired Capabilities ayudará a establecer un entorno para definir el comportamiento del navegador/entorno en el que se puede ejecutar la prueba.
Ayuda a iniciar nuestra aplicación en el entorno deseado teniendo las capacidades que deseamos utilizar.