Looking for selenium-webdriver Keywords? Try Ask4Keywords

selenium-webdriverModelo de objetos de página


Introducción

Un papel importante en la automatización de sitios web y aplicaciones web implica identificar elementos en la pantalla e interactuar con ellos. Los artículos se encuentran en Selenium mediante el uso de localizadores y la clase By . Estos localizadores e interacciones se colocan dentro de los objetos de página como una mejor práctica para evitar duplicar el código y facilitar el mantenimiento. Encapsula WebElements y se supone que contiene información de comportamiento y devolución en la página (o parte de una página en una aplicación web).

Observaciones

El modelo de objetos de página es un patrón en el que escribimos clases orientadas a objetos que sirven como interfaz para una vista particular de la página web. Usamos los métodos de esa clase de página para realizar la acción requerida. Hace unos años, estábamos manipulando el código HTML de la página web en las clases de prueba directamente, lo cual era muy difícil de mantener junto con los cambios frágiles en la interfaz de usuario.

Sin embargo, tener su código organizado de una forma de Patrón de Objeto de Página proporciona una API específica para la aplicación, lo que le permite manipular los elementos de la página sin excavar alrededor del HTML. La Rue of Thumb básica dice, su objeto de página debe tener todo lo que un humano puede hacer en esa página web. Por ejemplo, para acceder al campo de texto en una página web, debe utilizar un método para obtener el texto y devolver la cadena después de realizar todas las modificaciones.

Algunos puntos importantes que debe tener en cuenta al diseñar los objetos de página:

  1. Por lo general, el objeto de página no debe compilarse solo para las páginas, pero usted prefiere compilarlo para elementos significativos de la página. Por ejemplo, una página con varias pestañas para mostrar diferentes gráficos de sus académicos debe tener el mismo número de páginas que el recuento de pestañas.

  2. La navegación de una vista a otra debe devolver la instancia de clases de página.

  3. Los métodos de utilidad que deben estar allí solo para una vista o página web específica deben pertenecer solo a esa clase de página.

  4. Los métodos de aserción no deben ser atendidos por clases de página, puede tener métodos para devolver booleanos pero no verificarlos allí. Por ejemplo, para verificar el nombre completo del usuario, puede tener un método para obtener un valor booleano:

     public boolean hasDisplayedUserFullName (String userFullName) {
         return driver.findElement(By.xpath("xpathExpressionUsingFullName")).isDisplayed();
     }
    
  5. Si su página web está basada en iframe, prefiera tener clases de página para iframes también.

Ventajas del patrón de objeto de página:

  1. Separación limpia entre el código de prueba y el código de página
  2. En caso de cualquier cambio en la interfaz de usuario de la página web, no es necesario cambiar el código en varios lugares. Cambiar solo en clases de pagina.
  3. No hay localizadores de elementos dispersos.
  4. Hace que el código sea más fácil de entender
  5. Facil mantenimiento

Modelo de objetos de página Ejemplos relacionados