Mudanças entre as edições de "Expressão regular e XPath"
(Criou página com '==XPath== ===Introdução=== O XPath é uma linguagem de consulta, semelhante a expressão regular, para pesquisa em documentos com estrutura XML (como HTML por exemplo). É...') |
|||
Linha 52: | Linha 52: | ||
|- | |- | ||
|} | |} | ||
− | |||
====Baseado nas propriedades do elemento==== | ====Baseado nas propriedades do elemento==== | ||
Linha 99: | Linha 98: | ||
|- | |- | ||
|} | |} | ||
+ | |||
+ | ===Métodos=== | ||
+ | |||
+ | * '''text( )''' - O método “text()” é utilizado para encontrar elementos através do texto contido dentro deles, por exemplo, queremos encontrar o elemento “td” que possui o texto “Júlio de Lima”: //td[text()="Júlio de Lima"] | ||
+ | |||
+ | * '''first()''' - Através do método “first()” é possível identificar o primeiro elemento contido em um determinado escopo, por exemplo, queremos identificar o elemento “input” contido na primeira coluna da primeira linha de uma tabela: //table/tr[first()]/td[1]/input | ||
+ | |||
+ | *'''last()''' - Através do método “last()” é possível identificar o último elemento contido em um determinado escopo, por exemplo, queremos identificar o elemento “input” contido na primeira coluna da última linha de uma tabela: //table/tr[last()]/td[1]/input | ||
+ | |||
+ | *'''Comparações''' - Usando comparações de conteúdos podemos encontrar elementos baseados no texto contido dentro de seus filhos. Por exemplo, queremos identificar o elemento “input” que está dentro da primeira coluna, de uma linha na qual a segunda coluna possui o texto “Teste”: //tr[td[2]="Teste"]/td[1]/input | ||
==Referências== | ==Referências== | ||
* [http://www.qualister.com.br/blog/identificando-elementos-com-xpath Qualister] | * [http://www.qualister.com.br/blog/identificando-elementos-com-xpath Qualister] |
Edição das 13h48min de 12 de dezembro de 2016
Índice
XPath
Introdução
O XPath é uma linguagem de consulta, semelhante a expressão regular, para pesquisa em documentos com estrutura XML (como HTML por exemplo). É um recurso extremamente útil e muito utilizado durante a criação de scripts de testes de software em plataforma web.
Softwares de automação de testes são utilizados para simular a ação de usuários reais através de interações diretas com a aplicação sob teste. Para isso, é necessário que os elementos contidos na aplicação sejam identificados pela ferramentas de automação de testes, para que então, ações (cliques, digitação, etc) sejam executadas sobre eles.
Identificando elementos
Exemplo:
1 <html>
2 <body>
3 <table>
4 <tr>
5 <th>Ação</th>
6 <th>Nome</th>
7 </tr>
8 <tr>
9 <td><input type=“button” value=“Promover” id=“btnPromover" /></td>
10 <td>Cristiano Caetano</td>
11 </tr>
12 <tr>
13 <td><input type=“button” value=“Promover” /></td>
14 <td>Elias Nogueira</td>
15 </tr>
16 <tr>
17 <td><input type=“button” value=“Promover” /></td>
18 <td>Júlio de Lima</td>
19 </tr>
20 </table>
21 </body>
22 </html>
Tradicionalmente, existem duas formas (que oferecem menos risco), de identificar um elemento contido em um documento, são elas: baseado na árvore do elemento e baseado nas propriedades do elemento.
Baseado na árvore do elemento
Onde eu mostro para a ferramenta de automação toda a árvore do elemento:
Ação | Identificação do elemento | XPath |
Clicar | Documento HTML > Corpo > Tabela > 2a Linha > 1a Coluna > Botão Promover | /html/body/table/tr[2]/td[1]/input |
Baseado nas propriedades do elemento
Onde eu mostro para a ferramenta de automação propriedade(s) que destacam o elemento dos demais:
Ação | Identificação do elemento | XPath |
Clicar | Valor: “Promover”, Tipo: “button”, Id: “btnPromover” | //input[@id=“btnPromover”] |
É mais simples e seguro identificar elementos que possuem propriedades que o tornam únicos.
Elementos
Símbolo | Descrição | Exemplo |
/ | Pesquisa a partir da raiz da árvore | /html/body/table (Encontra todas as tabelas contidas dentro da tag "body", que está dentro da tag “html") |
// | Pesquisa em toda a árvore | //input[1] (Encontra o primeiro elemento “input”, pesquisando em toda a árvore) |
[ ] | Definição das propriedades de um elemento | //table/tr/td[1] (Encontra o primeiro elemento “td” contido nas tags “tr” das tags “table”, pesquisando em toda a árvore) |
@ | Propriedade do elemento | //*[@id=“btnPromover”] (Encontra um elemento que tenha a propriedade “id”, e que esta seja igual a “btnPromover", pesquisando em toda a árvore) |
* | Todos os elementos | //table/* (Encontra todos os elementos contidos nas tags “table", pesquisando em toda a árvore) |
Métodos
- text( ) - O método “text()” é utilizado para encontrar elementos através do texto contido dentro deles, por exemplo, queremos encontrar o elemento “td” que possui o texto “Júlio de Lima”: //td[text()="Júlio de Lima"]
- first() - Através do método “first()” é possível identificar o primeiro elemento contido em um determinado escopo, por exemplo, queremos identificar o elemento “input” contido na primeira coluna da primeira linha de uma tabela: //table/tr[first()]/td[1]/input
- last() - Através do método “last()” é possível identificar o último elemento contido em um determinado escopo, por exemplo, queremos identificar o elemento “input” contido na primeira coluna da última linha de uma tabela: //table/tr[last()]/td[1]/input
- Comparações - Usando comparações de conteúdos podemos encontrar elementos baseados no texto contido dentro de seus filhos. Por exemplo, queremos identificar o elemento “input” que está dentro da primeira coluna, de uma linha na qual a segunda coluna possui o texto “Teste”: //tr[td[2]="Teste"]/td[1]/input