Como facilitar a automação de elementos repetidos na tela usando Capybara/SitePrism?

Nathalia Freire
bionexo
Published in
2 min readMay 31, 2019

Muitos de vocês já devem ter passado por isso, e comigo não foi diferente, durante a minha caminhada como QA, principalmente uma QA que sai do teste manual para o teste automatizado: uma imensa dificuldade quando tinha que automatizar elementos repetidos na página, eu ficava tipo:

Doida.. rs

Um exercício do herokuapp, tem um exemplo bem específico do caso que eu estou falando:

Exericício: Add/Remove Elements do site herokuapp

A solução parecia bem simples na época, era só eu mapear o elemento exato, e adicionar na page, certo? Mas ai ficava algo mais ou menos assim:

Elemento usando nth-child ou first pra mapear a exata posição dele

Até que durante as conversas sobre automação dentro da Bionexo, me falaram: “Nat, por que vc não usa o ‘elements’ pra esse caso, ao invés do element?” E eu fiquei:

“Migo, seu loko, era exatamente o que eu precisava!!”

Então comecei a mapear os meus elementos assim:

Botão delete contém somente um elemento, chamado “elements” e ele mapeia TODOS os elementos delete da tela.

Mas ai vem o problema, se o elements mapeia todos os elementos delete da tela, como é que eu vou pegar o primeiro elemento ou o segundo pra fazer a validação do meu teste? Vocês já devem ter ouvido falar de array, certo?

A posição é passada dentro do steps do código, como [0] -> posição 1, [1] -> posição 2 e [2] -> posição 3. Mágico né?

E podemos melhorar um pouco mais o código, quem lembra do laço de repetição “for”?

Nele podemos ver que o “i” toma a posição dos números, e o valor de i é incrementado após cada execução, iniciando por 0 e finalizando por 2, fazendo a verificação no elemento delete seguinte.

Usando o for, eu consigo fazer a mesma coisa que eu fiz no exemplo anterior e o código fica muito mais limpo :)

Caso queiram ver como ficou a automação ou fazer um git clone pra treinar segue o github:

https://github.com/nathaliaifurita/add_remove_elements

--

--

Nathalia Freire
bionexo
Writer for

QA Engineer na SumUp, Geek Girl, Feminista e Gateira