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













