Repositorio de objetos en Selenium (XML y archivo de propiedades)

¿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 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.

Tipos de repositorios de objetos en Selenium Controlador web

Selenium WebDriver no ofrece un repositorio de objetos incorporado de forma predeterminada. Sin embargo, los repositorios de objetos se pueden crear 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 Controlador web.

  1. Repositorio de objetos usando el archivo de propiedades
  2. Repositorio de objetos utilizando un archivo XML

Selenium Repositorio de objetos del controlador web mediante el archivo de propiedades

En este enfoque, el archivo de propiedades es un archivo de texto en el que se almacenan datos en forma de pares clave-valor. El siguiente tutorial abordará los siguientes temas.

Paso 1) Crear un archivo de propiedades en eclipse

  1. Para comenzar, es necesario crear la siguiente estructura de proyecto Java en Eclipse. El nombre del proyecto y el nombre del paquete pueden ser cualquier nombre válido.

Crear un archivo de propiedades en Eclipse

  1. Haga clic derecho en la carpeta principal del proyecto y seleccione Nuevo-> Otro

Crear un archivo de propiedades en Eclipse

  1. En la siguiente ventana, seleccione General -> Archivo y haga clic en el botón "Siguiente".

Crear un archivo de propiedades en Eclipse

  1. Proporcione un nombre de archivo válido con la extensión ".properties" en la ventana de recursos de nuevo archivo y haga clic en el botón "Finalizar".

Crear un archivo de propiedades en Eclipse

  1. Se debe mostrar un archivo llamado 'application.properties' en la Estructura del proyecto

Crear un archivo de propiedades en Eclipse

Paso 2) Almacenar datos en un archivo de propiedades

  1. Los datos se almacenan en el archivo de propiedades en forma de pares clave-valor, siendo la clave única en todo el archivo.
  2. Intentaremos utilizar el archivo de propiedades para identificar elementos web utilizando valores de localizador.
  3. 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

Almacenamiento de datos en un archivo de propiedades

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
  • Introduzca datos en el cuadro de texto del correo electrónico utilizando ID
  • Haga clic en el botón Registrarse usando ID

Paso 3) Leer datos del archivo de propiedades

  1. La lectura de datos del archivo de propiedades se puede realizar utilizando la clase Propiedades incorporada proporcionada en el paquete java.util.
  2. Inicialmente, se debe crear un objeto de la clase Propiedades como se muestra a continuación
  Properties obj = new Properties();
  1. 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");
  1. 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.
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

El archivo de propiedades se puede utilizar en scripts de prueba leyendo datos de un archivo de propiedades y pasando los datos como parámetro al método findElement. El siguiente código demuestra el uso de datos leídos del 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("http://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);					
// Nagigate 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 de documento (DOM) como estructura básica. El formato de archivo XML replicará el formato HTML sobre el cual se construye la página web. A continuación se muestra la lista de temas que se cubrirán.

Paso 1) Crear un archivo XML en eclipse

  1. La siguiente estructura del proyecto Java debe crearse en Eclipse.

Crear un archivo XML en Eclipse

  1. Haga clic derecho en la carpeta del proyecto, seleccione Nuevo -> Otro

Crear un archivo XML en Eclipse

  1. Seleccione el archivo XML dentro de la carpeta XML y haga clic en el botón "Siguiente".

Crear un archivo XML en Eclipse

  1. Ingrese un nombre de archivo XML válido y haga clic en el botón "Finalizar".

Crear un archivo XML en Eclipse

  1. Se agregará un archivo XML a la carpeta del proyecto como se muestra a continuación.

Crear un archivo XML en Eclipse

Paso 2) Almacenar datos en un archivo XML

Los datos se pueden almacenar en un archivo XML en forma de modelo de objetos de documento (DOM). Para simplificar, podemos utilizar 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
  • Introduzca datos en el cuadro de texto del correo electrónico utilizando ID
  • Haga clic en el botón Registrarse usando ID

El siguiente es el formato del archivo XML que se 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

Almacenamiento de datos en un archivo XML

En la pestaña de diseño verás

Almacenamiento de datos en un archivo XML

Paso 3) Leer datos de un archivo XML

1. La lectura de datos de un archivo XML se puede realizar utilizando la clase 'dom4j' incorporada en 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, necesitamos crear un objeto Archivo y pasarlo como parámetro al método "lectura" de la clase SAXReader. Una vez que los datos del archivo XML se leen correctamente, podemos acceder a nodos individuales del documento XML utilizando el método "selectSingleNode".

Paso 4) Usar un 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 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 código siguiente demuestra el uso del 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("http://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

Resum

  • 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
    1. Repositorio de objetos usando el archivo de propiedades
    2. Repositorio de objetos utilizando 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 cual se construye la página web.