Repositorio de objetos en Selenium
⚡ Resumen inteligente
Repositorio de objetos en Selenium Centraliza los localizadores de elementos en un único archivo externo, separándolos de los scripts de prueba. Este enfoque mejora el mantenimiento y permite a los evaluadores actualizar los localizadores en un solo lugar, en lugar de editar numerosos casos de prueba.

¿Qué es un repositorio de objetos?
Un repositorio de objetos es una ubicación de almacenamiento común para todos los objetos. En Selenium En el contexto de WebDriver, los objetos normalmente serían los localizadores utilizados para identificar de forma única los elementos web.
La principal ventaja de usar un repositorio de objetos es la separación entre objetos y casos de prueba. Si cambia el valor del localizador de un elemento web, solo es necesario modificar el repositorio de objetos, en lugar de realizar cambios en todos los casos de prueba donde se haya utilizado dicho localizador. Mantener un repositorio de objetos aumenta la modularidad de la implementación del framework.
Tipos de repositorios de objetos en Selenium Controlador web
Selenium WebDriver no ofrece un repositorio de objetos integrado de forma predeterminada. Sin embargo, se pueden crear repositorios de objetos utilizando el método de pares clave-valor, donde la clave se refiere al nombre asignado al objeto y el valor a las propiedades que lo identifican de forma única dentro de la página web.
Los siguientes son los tipos de repositorios de objetos que se pueden crear en Selenium Controlador web.
- Repositorio de objetos usando el archivo de propiedades
- Repositorio de objetos utilizando un archivo XML
Selenium Repositorio de objetos del controlador web mediante el archivo de propiedades
En este enfoque, un archivo de propiedades es un archivo de texto donde los datos se almacenan en forma de pares clave-valor. El siguiente tutorial abordará los siguientes temas.
Paso 1) Crear un archivo de propiedades en eclipse
- Para empezar, es necesario crear en Eclipse la siguiente estructura de proyecto Java. El nombre del proyecto y el nombre del paquete pueden ser cualquier nombre válido.
- Haz clic con el botón derecho en la carpeta principal del proyecto y selecciona 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'.
- En la estructura del proyecto debe aparecer un archivo llamado 'application.properties'.
Paso 2) Almacenar datos en un archivo de propiedades
- Los datos se almacenan en un archivo de propiedades en forma de pares clave-valor, donde la clave es única en todo el archivo.
- Intentaremos utilizar el archivo de propiedades para identificar elementos web mediante valores de localización.
- Abra el archivo application.properties en Eclipse y almacenar los siguientes datos
MobileTesting=//a[text()='MOBILE TESTING'] EmailTextBox = philadelphia-field-email SignUpButton = philadelphia-field-submit
4) Para este tutorial se utiliza el siguiente sitio web de demostración:
https://demo.guru99.com/test/guru99home/Este es el escenario de prueba:
- Haz clic en el enlace de Pruebas móviles usando XPATH.
- Navegar hacia atrás
- Introduzca los datos en el cuadro de texto del correo electrónico utilizando el ID.
- Haga clic en el botón Registrarse usando ID
Paso 3) Leer datos del archivo de propiedades
- La lectura de datos desde un archivo de propiedades se puede realizar utilizando la clase integrada Properties proporcionada en el paquete java.util.
- Inicialmente, se debe crear un objeto de la clase Properties como se muestra a continuación.
Properties obj = new Properties();
- 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 desde un archivo de propiedades se puede realizar mediante el método `load` que ofrece la clase `Properties` en Java. El siguiente código muestra cómo utilizar dicho método.
Properties obj = new Properties(); 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 de Mobile Testing dentro de la página web.
Paso 4) Usar el archivo de propiedades en los scripts de prueba
Un archivo de propiedades se puede usar en scripts de prueba leyendo los datos del archivo y pasándolos como parámetro al método findElement. El siguiente código muestra cómo usar los datos leídos de un archivo de propiedades en scripts de prueba.
driver.findElement(By.xpath(obj.getProperty("MobileTesting"))).click(); driver.findElement(By.id(obj.getProperty("EmailTextBox"))).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(obj.getProperty("SignUpButton"))).click();
El siguiente es el código completo utilizado para el escenario de prueba anterior.
package com.objectrepository.demo; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Properties; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class DemoOR { public static void main(String[] args) throws IOException { // Create WebDriver Instance WebDriver driver; System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe"); driver = new ChromeDriver(); driver.get("https://demo.guru99.com/test/guru99home/"); driver.manage().window().maximize(); // Load the properties File Properties obj = new Properties(); FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties"); obj.load(objfile); // Navigate to link Mobile Testing and Back driver.findElement(By.xpath(obj.getProperty("MobileTesting"))).click(); driver.navigate().back(); // Enter Data into Form driver.findElement(By.id(obj.getProperty("EmailTextBox"))).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(obj.getProperty("SignUpButton"))).click(); } }
Selenium Repositorio de objetos WebDriver utilizando un archivo XML
XML significa Lenguaje de Marcado Extensible. Un archivo XML utiliza el Modelo de Objetos del Documento (DOM) como estructura básica. El formato del archivo XML reproduce el formato HTML sobre el que se construye la página web. A continuación, se presenta la lista de temas que se abordarán.
- Creando un archivo XML en Eclipse
- Almacenamiento de datos en un archivo XML
- Leer datos de un archivo XML
- Uso de archivos XML en scripts de prueba
Paso 1) Crear 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'.
- Introduzca 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 formato de Modelo de Objetos de Documento (DOM). Para simplificar, podemos usar el siguiente escenario de prueba como ejemplo.
- Haz clic en el enlace de Pruebas móviles usando XPATH.
- Volver a la página de inicio
- Introduzca los datos en el cuadro de texto del correo electrónico utilizando el ID.
- Haga clic en el botón Registrarse usando ID
A continuación se muestra el formato del archivo XML que se debe utilizar.
<menu> <mobiletesting>//a[text()='MOBILE TESTING']</mobiletesting> <email> philadelphia-field-email</email> <signup> philadelphia-field-submit </signup> </menu>
Almacene el código XML anterior en properties.xml
En la pestaña de diseño verás
Paso 3) Leer datos de un archivo XML
1. La lectura de datos desde un archivo XML se puede realizar utilizando la clase integrada 'dom4j' de Java. Tenga en cuenta que debe agregar los siguientes archivos JAR a 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.
File inputFile = new File(System.getProperty("user.dir") +"\\properties.xml"); SAXReader saxReader = new SAXReader(); Document document = saxReader.read(inputFile); String mobileTesting = document.selectSingleNode("//menu/mobiletesting").getText(); String emailTextBox = document.selectSingleNode("//menu/email").getText(); String signUpButton = document.selectSingleNode("//menu/signup").getText();
3. Inicialmente, debemos 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 hayan leído correctamente, podremos acceder a los nodos individuales del documento XML mediante el método 'selectSingleNode'.
Paso 4) Usar un archivo XML en scripts de prueba
Un archivo XML puede utilizarse en scripts de prueba leyendo los datos del archivo y pasándolos como parámetro al método findElement. El siguiente código muestra cómo utilizar los datos leídos de un archivo XML en scripts de prueba.
driver.findElement(By.xpath(mobileTesting)).click(); driver.findElement(By.id(emailTextBox)).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(signUpButton)).click();
El siguiente código demuestra el uso de un archivo XML en Selenium WebDriver.
package com.objectrepository.demo; import java.io.*; import java.util.*; import org.dom4j.*; import org.dom4j.io.SAXReader; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class DemoORXML { public static void main(String[] args) throws DocumentException { // Creating WebDriver Instance WebDriver driver; System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe"); driver = new ChromeDriver(); driver.get("https://demo.guru99.com/test/guru99home/"); driver.manage().window().maximize(); // Reading XML File File inputFile = new File(System.getProperty("user.dir") +"\\properties.xml"); SAXReader saxReader = new SAXReader(); Document document = saxReader.read(inputFile); String mobileTesting = document.selectSingleNode("//menu/mobiletesting").getText(); String emailTextBox = document.selectSingleNode("//menu/email").getText(); String signUpButton = document.selectSingleNode("//menu/signup").getText(); // Navigating to Mobile Testing and back driver.findElement(By.xpath(mobileTesting)).click(); driver.navigate().back(); // Entering Form Data driver.findElement(By.id(emailTextBox)).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(signUpButton)).click(); } }
Descargue el controlador web Eclipse Proyectos













