/Localizadores-css-e-xpath

Seletores CSS e Xpath para automação de testes

Localizadores CSS & Xpath

o que você vai aprender?

  • Saber diferenciar entre expressões CSS e Xpath;
  • Conhecer maneiras para testar localizadores;
  • Identificar elementos HTML, atributos e seus valores;
  • Conseguir montar seu seletor CSS e Xpath;
  • Quando usar cada um.

DOCUMENT OBJECT MODEL

DOM

Ainda sobre HTML:

image

  • Qual é o tipo do elemento? O elemento é o que vem depois do sinal de maior >, nesse exemplo seria o “select”.
  • Quais são seus atributos? São todos os itens que estão antes do sinal de “=”.
  • Quais são os valores de seus atributos? Nesse exemplo são: países, left-align, Seleção de países.

Guardem esses conceitos:

Qual é o tipo do elemento?

Quais são seu atributos?

Quais são os # valores de seus atributos?

Tipos de localizadores

  • Xpath
  • Atribute
  • Name
  • ID
  • CSS Selector
  • Class name
  • Link text
  • Tag name

Um pouco de cada um

Xpath:

  • XML Path Language (Linguagem de XML);
  • Se parecem com caminhos de diretórios.

Exemplo:

  • /html/head/title

CSS Seletor

  • Seletores CSS são expressões para locaiizar um elemento;

Exemplo:

  • div p

Principais maneiras de testar localizadores JQuery

Sintaxe JQuery

image

Site com localizadores CSS & Xpath Cheatsheet

Hand´s on!

CSS: $('.search_query').val()

Retorna o valor do filtro de busca, 't-shirts'

image

$('.homefeatured').text()

Retorna o texto

image

$('.blockbestsellers:first-child')

Retorna somente a primeira ocorrência daquele seletor CSS.

$('.blockbestsellers:first-child').click

Testa se o seletor funciona com .click()

image

$('.search_query').val('T-SHIRTS')

image

Exemplo com Xpath:

image

//div

image

Principais maneiras de testar localizadores DOCUMENT

Query Seletor:

document.querySelectorAll('cssSelector');

Com uso de classe:

image

Com uso de ID:

image

Get element:

document.getElementsByClassName(‘nomeClasse’);

image

Xpaths

document.evaluate('XPATH HERE', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;

image

Principais maneiras de testar localizadores CTRL + F

Testando seletor CSS:

image

Testando ID:

image

Comandos mais utilizados:

Seleção de todos os conteúdos, todos os elementos:

Comando:

$('*')

image

Caso queira fazer o mesmo com Xpath: Comando:

//*

image

Selecionando um elemento:

Comando: $('a')

Nesse exemplo buscamos todos os elemento’a’.

image

Mesma consulta com Xpath:

Comando: $x('//a')

image

Consultando desde raiz com css: buscando elemento de uma determinada estrutura.

Comando:

html > head > title

image

Mesma consulta com Xpath:

/ html / head / title

image

Fazendo consultas usando filtro:

Vamos fazer uma consulta como se fosse um select em um banco de dados.

Comando:

$(‘input[name=”search_query”]’)

O que o comando faz: busca um input na tela, onde o name é igual a "search_query".

image

Agora vamos fazer o mesmo com Xpath:

Comando:

$x('//input[@name="search_query"]')

image

Comando:

$('input[placeholder*="Sea"]')

image

Usando * ele pesquisa todos os atributos que tenha "placeholder" e o valor desse atributo contenha o "Sea".

Vamos fazer a mesma consulta com Xpath:

Usando "contains":

Comando:

$x('//input[contains(@placeholder,"Sea")]')

image

Quando não temos nenhum tipo de atributo:

image

Comando:

$('form input:nth-child(4)')

Explicando o comando:

Nesse exemplo criamos um seletor sem usar id, class, name, placeholder. Somente utilizando elementos HTML.

image

Agora vamos fazer o mesmo com Xpath:

Comando:

$x('//form//input[4]')

image

Pesquisando o primeiro elemento:

Comando:

$x('//form//input[1]')

image

Buscando o last:

Comando:

$x('//form//input[last()]')

image

Obs: nesse exemplo podemos ver que ele trouxe dois resultados, então não seria confiável, sempre busque por um elemento único.

Selecionando elemento pelo texto:

Comando:

$x(‘//*[text()=”Lorem Ipsum”]’)

image

Usando "contains" junto com "text":

Comando:

$x(‘//*[contains(text(), “textoexemplo”]’)

image

Tabela de localizadores

Nome CSS XPATH
Todos os elementos * //*
Um elemento p //p
Caminho absoluto html > body > title /html/body/title
Query com atributo Input[placeholder=”Search”] //input[@placeholder, “Search”]
Query com parte de atributo Input[placeholder*=”Sea”] //input[contains(@placeholder, “Sear”)]
Filhos do elemento Form input:first-child //form/input[1]
Form input:nth-child(4) //form/input[4]
Form input:first-child //form/input[1]
Classe e id .sear_query //*[@class=”search_query form-control ac_input”]
#search_query_top //*[@id=”search_query_top”]
//*[contains(@class, “search_query”)]
Elemento pelo seu texto //*[text()=”Come Visit Us”]
//*[contains(text(), “Nort Carolina”)]

Fonte: Iterasys Live com: Danilo Arantes Freitas

Agradecimentos:

Gostaria de agradecer ao meu amigo Sandro Augusto por me ajudar nesse projeto Linkedin