page object model selenium without using page factory
Page Object Model (POM) es un patrón de diseño para mantener el repositorio de objetos para elementos web. Este tutorial explica cómo implementar POM en Selenium sin Page Factory:
El proyecto de automatización con guión debe diseñarse de tal manera que esté optimizado y sea más fácil de entender. Esto se logra utilizando POM que sigue ciertas pautas para diseñar un marco.
Aprenderemos más sobre:
- ¿Qué es POM?
- Ventajas de usar POM en un proyecto
- ¿Cómo crear un POM básico sin utilizar el enfoque de Page Factory?
=> Visite aquí para ver la serie exclusiva de tutoriales de capacitación sobre selenio.
Lo que vas a aprender:
Modelo de objeto de página sin fábrica de páginas
Page Object Model es un patrón de diseño que se utiliza para mantener el repositorio de objetos para los elementos web. Aquí, todos los elementos web y sus métodos correspondientes se mantienen en una clase separada para cada página web. Por lo tanto, incluso un solo cambio en el atributo de un WebElement se reflejará en todos los casos de prueba donde sea que se use. De esta forma, facilita el mantenimiento del repositorio de objetos.
El modelo de objetos de página es mejor cuando se utiliza para aplicaciones que tienen varias páginas o estados.
Aquí están los tutoriales en video:
Parte I
Parte II
Ventajas de POM
A continuación se presentan algunas ventajas de POM:
- Es más fácil mantener el código. Cualquier cambio en la interfaz de usuario se reflejará donde sea que se use en la clase.
- Robusto y permite leer el código (los métodos tienen nombres más realistas).
- Hace que el código sea reutilizable y reduce la duplicación de código (el repositorio de objetos es independiente de los casos de prueba).
- El código se vuelve menos y optimizado.
Pasos para crear un POM sin modelo de fábrica de páginas
#1) Cree una clase Java para cada página de la aplicación.
#2) En cada clase, declare todos los elementos web como variables.
#3) Implementar los métodos correspondientes actuando sobre las variables.
El patrón de diseño se puede estructurar usando 2 capas / paquetes:
- Capa de página contendrá las páginas de la aplicación como Clase Java individual. Cada clase tendrá WebElements declarados como variables y las acciones que se realizan como métodos.
- Capa de prueba contendrá los casos de prueba de la aplicación y su parte de verificación.
Tomemos un ejemplo de un escenario simple:
- Abra la URL de una aplicación.
- Escriba la dirección de correo electrónico y los datos de la contraseña.
- Haga clic en el botón Iniciar sesión.
- Verifique el mensaje de inicio de sesión exitoso en la página de búsqueda.
Capa de página
Aquí tenemos 2 páginas,
- Página principal : La página se abre cuando se ingresa la URL y aquí es donde ingresamos los datos para iniciar sesión.
- SearchPage : Página que se muestra después de iniciar sesión correctamente.
En la capa de página, cada página de la aplicación web se declara como una clase Java separada y sus localizadores y acciones se mencionan allí.
Pasos para crear POM con ejemplos en tiempo real
# 1) Cree una clase Java para cada página:
En esto ejemplo , accederemos a 2 páginas web, las páginas “Inicio” y “Búsqueda”. Por lo tanto, crearemos 2 clases Java en la capa de página (o en un paquete, por ejemplo, com.automation.pages).
|_+_|# 2) Cree WebElements como variables:
qué es un código de clave de seguridad
Estaríamos interactuando con:
- Correo electrónico, contraseña, campo de botón de inicio de sesión en la página de inicio.
- Un mensaje exitoso en SearchPage.
Así que crearemos WebElements como variables usando la clase 'Por'.
Por ejemplo: Si el correo electrónico tiene xpath como // div (contiene (@id, 'EmailId')), entonces su declaración de variable es
// Localizador para el campo EmailId
By EmailAddress = By.xpath (// div (contiene (@id, 'EmailId')))
# 3) Cree métodos para acciones realizadas en WebElements:
Las siguientes acciones se realizan en WebElements:
- Escriba la acción en el campo EmailAddress.
- Escriba acción en el campo Contraseña.
- Haga clic en acción en el botón Iniciar sesión.
Por ejemplo, Los métodos definidos por el usuario se crean para cada acción en el WebElement como,
|_+_|Aquí, el Id se pasa como parámetro en el método, ya que el usuario enviará la entrada desde el caso de prueba principal.
Nota :Se debe crear un constructor para cada clase en la capa de página para obtener la instancia del controlador de la clase principal en la capa de prueba.
No iniciamos el controlador aquí, sino que su instancia se recibe de la clase principal cuando se crea el objeto de la clase de capa de página.
Se crean dos clases de Java para cada página, como se muestra a continuación:
HomePage.java
|_+_|SearchPage.Java
|_+_|Capa de prueba
Los casos de prueba se implementan en esta clase.
Creamos un paquete separado, por ejemplo, com.automation.test y luego creamos una clase Java aquí (MainClass.java).
Pasos para crear casos de prueba:
- Inicialice el controlador y abra la aplicación.
- Cree un objeto de la clase PageLayer (para cada página web) y pase la instancia del controlador como parámetro.
- Usando el objeto creado, haga una llamada a los métodos en la clase PageLayer (para cada página web) para realizar acciones / verificación.
- Repita el paso 3 hasta que se realicen todas las acciones y luego cierre el controlador.
Conclusión
Este tutorial explica las ventajas del Page Object Model y cómo crear un patrón de diseño básico de POM sin utilizar Page Factory en Selenium.
En el próximo tutorial, discutiremos otro enfoque de POM, es decir, el uso del enfoque de Page Factory.
=> Consulte TODOS los tutoriales de Selenium aquí.
Lectura recomendada
- Modelo de objeto de página (POM) con Page Factory | Tutorial de selenio
- Modelo en espiral - ¿Qué es el modelo en espiral SDLC?
- Tutorial de Cucumber Selenium: Integración de Cucumber Java Selenium WebDriver
- Uso de la clase selecta de selenio para manejar elementos desplegables en una página web - Tutorial de selenio n. ° 13
- Introducción a Selenium WebDriver - Tutorial de Selenium n. ° 8
- Tutorial de ChromeDriver Selenium: Pruebas de Selenium Webdriver en Chrome
- Más de 30 mejores tutoriales de selenio: aprenda selenio con ejemplos reales
- Oportunidad de trabajo independiente a tiempo parcial para expertos en selenio