Trabalhando com verificações e esperas de elementos com o Capybara, SitePrism e Rspec.(Parte I)

Bruno Batista
automação com batista
4 min readApr 20, 2018

Você já passou pela situação de não encontrar um elemento na tela ou até mesmo ele estando lá e dar erro na sua automação:

Então vou falar um pouco sobre alguns métodos para verificação de elementos e espera de elementos.

Vamos utilizar os métodos do Capybara:

1) Primeiro iremos verificar os elementos com Assert(Afirmação).

1)assert_all_of_selectors

Afirma que todos os seletores fornecidos estão presentes na página ou nos descendentes do nó atual.

2)assert_none_of_selector

Afirma que nenhum dos seletores fornecidos está presente na página ou nos descendentes do nó atual.

2)assert_matches_selector

Afirma que o current_node corresponde a um determinado seletor.

4)assert_selector

Afirma que um determinado seletor está na página ou um descendente do nó atual.

5)assert_text

Afirma que a página ou o nó atual possui o conteúdo de texto especificado, ignorando quaisquer tags HTML.

2) Agora afirmando que o elemento não existe na tela com o Assert_not(afirmar que não)

1)assert_not_matches_selector

Afirma que o current_node não corresponde a um determinado seletor.

2)assert_no_selector

Afirma que um determinado seletor não está na página ou descendente do nó atual.

3)assert_no_text

Afirma que a página ou o nó atual não tem o conteúdo de texto especificado, ignorando quaisquer tags HTML.

3) Verificando elemento com o “Has(Tem)”.

1)has_checked_field?

Verifica se a página ou o nó atual tem um botão de opção ou caixa de seleção com o rótulo, valor ou ID fornecido, que está atualmente marcado.

2)has_select?

Verifica se a página ou o nó atual tem um campo de seleção com o rótulo, o nome ou o ID fornecido.

3)has_selector?

Verifica se um determinado seletor está na página ou um descendente do nó atual.

4)has_table?

Verifica se a página ou o nó atual possui uma tabela com o ID ou a legenda especificada

5)has_text?

Verifica se a página ou o nó atual tem o conteúdo de texto especificado, ignorando todas as tags HTML.

6)has_unchecked_field?

Verifica se a página ou o nó atual tem um botão de opção ou caixa de seleção com o rótulo, valor ou ID fornecido, que está atualmente desmarcado.

7)has_xpath?

Verifica se uma determinada expressão XPath está na página ou um descendente do nó atual.

8)has_button?

Verifica se a página ou o nó atual possui um botão com o texto, valor ou id fornecido.

9)has_css?

Verifica se um determinado seletor de CSS está na página ou um descendente do nó atual.

10)has_field?

Verifica se a página ou o nó atual tem um campo de formulário com o rótulo, o nome ou o ID fornecido.

11)has_link?

Verifica se a página ou o nó atual tem um link com o texto ou o ID fornecido.

4) Verificando elementos que não estão na tela com o “Has_no(Não Tem)”.

1)has_no_checked_field?

Verifica se a página ou o nó atual não tem nenhum botão de opção ou caixa de seleção com o rótulo, valor ou ID fornecido, que está atualmente marcado.

2)has_no_select?

Verifica se a página ou o nó atual não tem campo de seleção com o rótulo, nome ou id fornecido.

3)has_no_selector?

Verifica se um determinado seletor não está na página ou um descendente do nó atual.

4)has_no_table?

Verifica se a página ou o nó atual não possui tabela com o ID ou legenda especificada.

5)has_no_text?

Verifica se a página ou o nó atual não possui o conteúdo de texto especificado, ignorando qualquer tag HTML e normalizando o espaço em branco.

6)has_no_unchecked_field?

Verifica se a página ou o nó atual não tem botão de opção ou caixa de seleção com o rótulo, valor ou ID fornecido, que está atualmente desmarcado.

7)has_no_xpath?

Verifica se uma determinada expressão XPath não está na página ou descendente do nó atual.

8)has_no_button?

Verifica se a página ou o nó atual não possui um botão com o texto, valor ou id fornecido.

9)has_no_css?

Verifica se um determinado seletor de CSS não está na página ou um descendente do nó atual.

10)has_no_field?

Verifica se a página ou o nó atual não possui um campo de formulário com o rótulo, nome ou ID fornecido.

11)has_no_link?

Verifica se a página ou o nó atual não tem link com o texto ou o ID fornecido.

5) Verificando elementos com o Matches(Combina).

1)matches_css?

Verifica se o nó atual corresponde ao seletor de CSS especificado.

2)matches_selector?

Verifica se o nó atual corresponde ao seletor especificado.

3)matches_xpath?

Verifica se o nó atual corresponde a determinada expressão XPath.

6) Verificando os elementos não combinam com o Not_Matches(Não Combina).

1)not_matches_css?

Verifica se o nó atual não corresponde ao seletor de CSS fornecido.

2)not_matches_selector?

Verifica se o nó atual não corresponde ao dado seletor. O uso é idêntico ao has_selector ?.

3)not_matches_xpath?

Verifica se o nó atual não corresponde à expressão XPath fornecida.

Opções:

Esses métodos também contém opções para ajudar na busca desses elementos:

count(Integer)

Número exato de elementos que se espera encontrar.

maximum(Integer)

Número máximo de elementos que se espera encontrar.

minimum(Integer)

Número mínimo de elementos que se espera encontrar.

between(Range)

O número de correspondências encontradas deve estar dentro do intervalo determinado

exact(Boolean)

Controlar se as expressões ‘is’ no determinado Xpath correspondem exatamente ou parcialmente.

wait(Integer)

Por padrão o wait usa o Capybara.defaullt_max_wait_time como tempo padrão.Mas você pode passar o tempo para esperar que as expectativas de contagem de elementos se tornem verdadeiras

Se eu esqueci de passar algo só me avisar que adiciono :)

E ficamos com essas dicas pessoal até o próximo post:

Referências:

--

--