¿Qué es un repositorio de objetos?
Un repositorio de objetos es una ubicación de almacenamiento común para todos los objetos. En el contexto de Selenium WebDriver, los objetos suelen ser los localizadores que se utilizan para identificar de forma única los elementos web.
La principal ventaja de utilizar el repositorio de objetos es la segregación de objetos de los casos de prueba. Si el valor del localizador de un elemento web cambia, solo es necesario cambiar el repositorio de objetos en lugar de realizar cambios en todos los casos de prueba en los que se ha utilizado el localizador. Mantener un repositorio de objetos aumenta la modularidad de la implementación del marco.
En este tutorial, aprenderá:
- ¿Qué es un repositorio de objetos?
- Tipos de repositorios de objetos en Selenium Web Driver
- Repositorio de objetos del controlador web de Selenium utilizando el archivo de propiedades
- Repositorio de objetos de Selenium WebDriver usando un archivo XML
Tipos de repositorios de objetos en Selenium Web Driver
Selenium WebDriver no ofrece un repositorio de objetos incorporado de forma predeterminada. Sin embargo, los repositorios de objetos se pueden construir utilizando el enfoque de par clave-valor en el que la clave se refiere al nombre dado al objeto y el valor se refiere a las propiedades utilizadas para identificar de forma única un objeto dentro de la página web.
Los siguientes son los tipos de repositorios de objetos que se pueden crear en Selenium WebDriver.
- Repositorio de objetos usando el archivo de propiedades
- Repositorio de objetos usando un archivo XML
Repositorio de objetos del controlador web de Selenium utilizando el archivo de propiedades
En este enfoque, el archivo de propiedades es un archivo de texto en el que los datos se almacenan en forma de pares clave-valor. El siguiente tutorial abordará los siguientes temas.
- Creando un archivo de propiedades en eclipse
- Almacenamiento de datos en el archivo de propiedades
- Leer datos del archivo de propiedades
- Usando el archivo de propiedades en los scripts de prueba
Paso 1) Creando un archivo de propiedades en eclipse
- Para empezar, la estructura del proyecto java a continuación debe crearse en eclipse. El nombre del proyecto y el nombre del paquete pueden ser cualquier nombre válido.
- Haga clic derecho en la carpeta principal del proyecto y seleccione Nuevo-> Otro
- En la siguiente ventana, seleccione General -> Archivo y haga clic en el botón 'Siguiente'
- Proporcione un nombre de archivo válido con la extensión '.properties' en la nueva ventana de recursos de archivo y haga clic en el botón 'Finalizar'
- Se debe mostrar un archivo llamado 'application.properties' en la estructura del proyecto
Paso 2) Almacenamiento de datos en el archivo de propiedades
- Los datos se almacenan en el archivo de propiedades en forma de pares clave-valor, siendo la clave única en todo el archivo.
- Intentaremos usar el archivo de propiedades para identificar elementos web usando valores de localizador.
- Abra el archivo application.properties en Eclipse y almacene los siguientes datos
MobileTesting = // a [text () = 'PRUEBA MÓVIL']EmailTextBox = philadelphia-field-emailSignUpButton = campo-filadelfia-enviar
4) Para este tutorial, se utiliza el siguiente sitio web de demostración: http://demo.guru99.com/test/guru99home/. Aquí está el escenario de prueba:
- Haga clic en el enlace Prueba móvil usando XPATH
- Navegar hacia atrás
- Ingrese datos en el cuadro de texto del correo electrónico usando ID
- Haga clic en el botón Registrarse con ID
Paso 3) Leer datos del archivo de propiedades
- La lectura de datos del archivo de propiedades se puede realizar utilizando la clase de propiedades incorporada proporcionada en el paquete java.util.
- Inicialmente, se debe crear un objeto de la clase Propiedades como se muestra a continuación
Propiedades obj = nuevas Propiedades ();
- Necesitamos crear un objeto de la clase FileInputStream con la ruta al archivo de propiedades
FileInputStream objfile = new FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");
- La lectura de datos del archivo de propiedades se puede realizar utilizando el método de carga ofrecido por la clase Propiedades en java. El siguiente código demuestra el uso del método de carga.
Propiedades obj = nuevas Propiedades ();FileInputStream objfile = new FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");obj.load (objfile);String mobileTesting = obj.getProperty ("MobileTesting");
La cadena 'mobileTesting' contendrá el XPATH para identificar el enlace Mobile Testing dentro de la página web.
Paso 4) Uso del archivo de propiedades en scripts de prueba
El archivo de propiedades se puede utilizar en scripts de prueba leyendo datos de un archivo de propiedades y pasando los datos como un parámetro al método findElement. El siguiente código demuestra el uso de los datos leídos del archivo de propiedades en los scripts de prueba.
driver.findElement (By.xpath (obj.getProperty ("MobileTesting"))). click ();driver.findElement (By.id (obj.getProperty ("EmailTextBox"))). sendKeys (" Esta dirección de correo electrónico está protegida contra spambots. Necesita activar JavaScript para verla.");driver.findElement (By.id (obj.getProperty ("SignUpButton"))). click ();
El siguiente es el código completo utilizado para el escenario de prueba anterior.
paquete com.objectrepository.demo;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.util.Properties;import org.openqa.selenium.By;importar org.openqa.selenium.WebDriver;importar org.openqa.selenium.chrome.ChromeDriver;clase pública DemoOR {public static void main (String [] args) lanza IOException {// Crear instancia de WebDriverControlador WebDriver;System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");controlador = nuevo ChromeDriver ();driver.get ("http://demo.guru99.com/test/guru99home/");driver.manage (). window (). maximizar ();// Cargar el archivo de propiedadesPropiedades obj = nuevas Propiedades ();FileInputStream objfile = new FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");obj.load (objfile);// Nagigate para vincular Mobile Testing y Backdriver.findElement (By.xpath (obj.getProperty ("MobileTesting"))). click ();driver.navigate (). back ();// Ingrese datos en el formulariodriver.findElement (By.id (obj.getProperty ("EmailTextBox"))). sendKeys (" Esta dirección de correo electrónico está protegida contra spambots. Necesita activar JavaScript para verla.");driver.findElement (By.id (obj.getProperty ("SignUpButton"))). click ();}}
Repositorio de objetos de Selenium WebDriver usando un archivo XML
XML son las siglas de Extensible Markup Language. Un archivo XML utiliza el modelo de objetos de documento (DOM) como estructura básica. El formato de archivo XML replicará el formato HTML sobre el que se construye la página web. A continuación se muestra la lista de temas que se cubrirán.
- Creando un archivo XML en eclipse
- Almacenar datos en un archivo XML
- Leer datos de un archivo XML
- Usar archivo XML en scripts de prueba
Paso 1) Creando un archivo XML en eclipse
- La siguiente estructura del proyecto java debe crearse en Eclipse.
- Haga clic derecho en la carpeta del proyecto, seleccione Nuevo -> Otro
- Seleccione el archivo XML dentro de la carpeta XML y haga clic en el botón 'Siguiente'
- Ingrese un nombre de archivo XML válido y haga clic en el botón 'Finalizar'
- Se agregará un archivo XML a la carpeta del proyecto como se muestra a continuación
Paso 2) Almacenar datos en un archivo XML
Los datos se pueden almacenar en un archivo XML en forma de Modelo de objeto de documento (DOM). En aras de la simplicidad, podemos usar el siguiente escenario de prueba como ejemplo.
- Haga clic en el enlace Prueba móvil usando XPATH
- Navegar de regreso a la página de inicio
- Ingrese datos en el cuadro de texto del correo electrónico usando ID
- Haga clic en el botón Registrarse con ID
El siguiente es el formato de archivo XML que se utilizará.
// a [text () = 'PRUEBA MÓVIL'] philadelphia-field-email philadelphia-field-submit
Almacene el código XML anterior en properties.xml
En la pestaña de diseño verá
Paso 3) Leer datos del archivo XML
1. La lectura de datos desde un archivo XML se puede lograr usando la clase 'dom4j' incorporada en Java. Tenga en cuenta que debe agregar los archivos JAR a continuación en la ruta de compilación de su proyecto antes de continuar con el código.
- jaxen.jar
- dom4j-1.6.jar
2. A continuación se muestra el código para leer datos del archivo XML.
Archivo inputFile = nuevo archivo (System.getProperty ("user.dir") + "\\ properties.xml");SAXReader saxReader = nuevo SAXReader ();Documento documento = saxReader.read (inputFile);String mobileTesting = document.selectSingleNode ("// menú / mobiletesting"). GetText ();String emailTextBox = document.selectSingleNode ("// menú / correo electrónico"). GetText ();String signUpButton = document.selectSingleNode ("// menú / registro"). GetText ();
3. Inicialmente, necesitamos crear un objeto File y pasarlo como parámetro al método 'read' de la clase SAXReader. Una vez que los datos del archivo XML se leen correctamente, podemos acceder a los nodos individuales del documento XML utilizando el método 'selectSingleNode'.
Paso 4) Usar archivo XML en scripts de prueba
El archivo XML se puede utilizar en scripts de prueba leyendo datos del archivo XML y pasando los datos como parámetro al método findElement. El siguiente código demuestra el uso de datos leídos desde un archivo XML en scripts de prueba.
driver.findElement (By.xpath (mobileTesting)). click ();driver.findElement (By.id (emailTextBox)). sendKeys (" Esta dirección de correo electrónico está protegida contra spambots. Necesita tener JavaScript habilitado para verla");driver.findElement (By.id (signUpButton)). click ();
El siguiente código demuestra el uso de un archivo XML en selenium WebDriver
paquete com.objectrepository.demo;importar java.io. *;importar java.util. *;importar org.dom4j. *;import org.dom4j.io.SAXReader;import org.openqa.selenium.By;importar org.openqa.selenium.WebDriver;importar org.openqa.selenium.chrome.ChromeDriver;clase pública DemoORXML {public static void main (String [] args) lanza DocumentException {// Creando una instancia de WebDriverControlador WebDriver;System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");controlador = nuevo ChromeDriver ();driver.get ("http://demo.guru99.com/test/guru99home/");driver.manage (). window (). maximizar ();// Leyendo archivo XMLArchivo inputFile = nuevo archivo (System.getProperty ("user.dir") + "\\ properties.xml");SAXReader saxReader = nuevo SAXReader ();Documento documento = saxReader.read (inputFile);String mobileTesting = document.selectSingleNode ("// menú / mobiletesting"). GetText ();String emailTextBox = document.selectSingleNode ("// menú / correo electrónico"). GetText ();String signUpButton = document.selectSingleNode ("// menú / registro"). GetText ();// Navegando a Mobile Testing y viceversadriver.findElement (By.xpath (mobileTesting)). click ();driver.navigate (). back ();// Ingresando datos del formulariodriver.findElement (By.id (emailTextBox)). sendKeys (" Esta dirección de correo electrónico está protegida contra spambots. Necesita tener JavaScript habilitado para verla");driver.findElement (By.id (signUpButton)). click ();}}
Descargue el proyecto WebDriver Eclipse
Resumen:
- Un repositorio de objetos es una ubicación de almacenamiento común para todos los objetos.
- Selenium WebDriver no ofrece un repositorio de objetos incorporado de forma predeterminada
- Puede crear 2 tipos de repositorio de objetos en Selenium
- Repositorio de objetos usando el archivo de propiedades
- Repositorio de objetos usando un archivo XML
- El archivo de propiedades es un archivo de texto en el que los datos se almacenan en forma de pares clave-valor
- El formato de archivo XML replicará el formato HTML sobre el que se construye la página web.