In this presentation I explain how we structure our page objects using SitePrism, show some good practices, and how we solved the problem of flow pages using SitePrism Sections, here at Resultados Digitais.
2. Leonardo Giacomini
➢ Graduated in Systems Analysis - UTFPR
➢ 8 years of testing automation experience
➢ QA Engineer at Resultados Digitais
Contact:
- Emails: lgiacomini92@gmail.com
leonardo.giacomini@resultadosdigitais.com.br
- LinkedIn: https://www.linkedin.com/in/lgiacomini92
- SlideShare: https://pt.slideshare.net/LeonardoGiacomini
3. How to structure Page Objects with SitePrism
● Page Object Model
● Siteprism
○ Page Class
○ Set URL and Set URL with Params
○ Invidual Elements
■ Find selectors
■ Methods: set, click, text and select
■ Matchers: has_<element_name>?
■ Waits: wait_for<element_name> and wait_until_<element_name>_visible/invisible
○ Element Collections
● Email Flow Case
○ Sections
○ iFrames
4. Page Object Model
● Abstraction of the user interface that can be used in the tests.
● Each page as a class (most common);
● Use instances of those classes in your tests.
5. SitePrism
● Simple, clean and semantic Domain Specific Language (DSL);
● Page Object Model pattern;
● For use with Capybara;
https://github.com/natritmeyer/site_prism
Abstração da interface do usuário que pode ser usada nos testes. A maneira mais comum de fazer isso é modelar cada página como uma classe e, em seguida, usar instâncias dessas classes em seus testes.
Se uma classe representa uma página, então cada elemento da página é representado por um método que, quando chamado, retorna uma referência ao elemento que pode então ser atendido (clicado, definir valor de texto) ou consultado (é habilitado? ?).
SitePrism é baseado em torno deste conceito, mas vai mais longe como você verá abaixo, permitindo também a modelagem de seções repetidas que aparecem em várias páginas, ou muitas vezes em uma página usando o conceito de seções.
O Page Object é um padrão que funciona como interface de acesso a elementos da camada de visão – para aplicações web ele representa uma página HTML. Ele é aplicado para abstrair as páginas de uma aplicação com o objetivo de reduzir o acoplamentoentre os casos de teste e a aplicação a ser testada.
Abstração da interface do usuário que pode ser usada nos testes. A maneira mais comum de fazer isso é modelar cada página como uma classe e, em seguida, usar instâncias dessas classes em seus testes.
Se uma classe representa uma página, então cada elemento da página é representado por um método que, quando chamado, retorna uma referência ao elemento que pode então ser atendido (clicado, definir valor de texto) ou consultado (é habilitado? ?).
SitePrism é baseado em torno deste conceito, mas vai mais longe como você verá abaixo, permitindo também a modelagem de seções repetidas que aparecem em várias páginas, ou muitas vezes em uma página usando o conceito de seções.
O Page Object é um padrão que funciona como interface de acesso a elementos da camada de visão – para aplicações web ele representa uma página HTML. Ele é aplicado para abstrair as páginas de uma aplicação com o objetivo de reduzir o acoplamentoentre os casos de teste e a aplicação a ser testada.