Blog
Testing with Selenium using commands While and XPath
|
![]() |
So,
I decided to write this post to help with 3 functions of Selenium IDE. And I translate for to english, for my friends Indians, with we study selenium. So, sorry about my english, again. And too, sorry my, brasilian friends what know english best me.
1- Variable
2- While
3- XPath
So, what doing my scrit basicaly?
He create an environment for repeatition, and I can insert one any test.
In the example, I insert a test, what was to click in a button "Convidar" of a Facebook fanpage. For this test, I insert a quantity of repeat of 50 times.
Inserting a condition wherein While is until 50, I start to test agin.
Well, my test will to click in the button "Convidar" for invite my friends to like fanpage of 4All Tests. But you joke with the script wherever
Before ending the condition, after the test Increment the variable, so, after at 13th test he incrementing the variabel, going for the 14th test(this is an example)
The part interesting, is to use the XPath, and my test get consistent in case where Id of button changes.
I post an article translate to portuguese about XPath
So, our test automation like this:
Script
*Look this, it is important put a bar over there in target, because it is copied whith only a single bar. '//'
So look how our script works
On the step 1, he open the fanpage
Step 1
On the step 2, I declare my variable "QTD" and i change the his value for "1"
Step 2
In step 3, the condition of my command "While" checks if the my variable "QTD" is less than or equal to 50. If so, to do the test, if it is not less than or equal to 50, or 50 is equals or higher (51, 52 ...) for this condition and it goes straight to "EndWhile" command.
Step 3
In step 4 I will do all that is in my test, yes(in example), click the invite button.
Step 4
In step 5, after my test I add to the variable "QTD" the value "1" plus the value that is in "QTD".
Step 5
The script for download here https://github.com/testejoaojunior/Selenium/blob/master/While_com_variavel_incremental.html" target="_blank" rel="nofollow">in git.
So, brothers, sorry my english, and I not used google translate, kkkkkk.
And, rememer:
Testing software is not breaking it. It look simple and develops it.
While com variavel incremental
|
![]() |
Então, esse post estava aqui esfriando desde o dia 05 de maio(hoje 19).
Resolvi escrever este post pra ajudar com 3 funções do Selenium IDE.
1- Variável
2- While
3- XPath
O que meu script basicamente faz?
Ele cria um ambiente de repetição para eu poder inserir um teste qualquer.
No exemplo, inseri um teste que era clicar no Botão Convidar de uma página do Facebook. Para este teste, inseri uma quantidade de repetições de 50 vezes.
Inserindo uma condição em que Equanto minha variável não atingir o valor de 50, eu rodo o teste.
Veja bem, meu teste vai clicar no botão convidar para convidar os meus amigos para curtirem a página do 4All Testes no Facebook. Mas se você utilizar este script você pode brincar a vontade.
Antes de terminar a condição, logo após o Teste eu incremento a variavel, logo, após o 13° teste ele incrementa a variavel, indo realizar o 14° teste(exemplo).
Uma parte interessante é utilzar o XPath, assim meu teste fica mais consistente caso o Id do botão mude.
Eu publiquei um artigo de um post traduzido sobre XPath.
Então o nosso teste automatizado fica da seguinte forma:
Script
*Note que é importante colocar uma barra a mais no alvo, pois ele é copiado apenas com uma unica barra '//'
Vejamos como nosso script roda:
No passo 1 ele abre a página do facebook.
Passo 1
No passo 2 eu declario minha variavel "QTD" e dou o valor "1" à ela.
Passo 2
No passo 3, o meu comando de condição "While" verifica se minha variável "QTD" é menor ou igual à 50. Caso seja, realiza o teste, se não for menor ou igual a 50, ou seja, for igual a 50 ou maior (51, 52 ...) ele para a condição e vai direto ao comando "EndWhile".
Passo 3
No passo 4 eu vou realizar tudo que está dentro do meu teste, ou seja, clicar no botão convidar.
Passo 4
No passo 5, após meu teste eu acrescento à variável "QTD" o valor "1" mais o valor que estiver em "QTD".
Passo 5
O script pode ser baixado aqui https://github.com/testejoaojunior/Selenium/blob/master/While_com_variavel_incremental.html" target="_blank" rel="nofollow">no git.
Então pessoal, fica ai, este exemplo de While no Selenium IDE. Até mais pessoal.
Xpath
|
![]() |
Vamos entender um pouquinho sobre XPath
Você precisa fornecer qualquer elemento localizador(como id, nome, caminho css, XPath, etc) na coluna de destino do selenium, para localizar esse elemento específico e executar alguma ação. Se você conhece Selenium IDE, então você sabe que às vezes não contém elementos de identificação ou nome assim o seu teste para ali. O XPath é uma outra maneira de localizar o elemento e você pode usá-lo como uma alternativa de identificação ou nome do elemento.
XPath no documento XML mostra a direção do local do elemento através de nós e atributos. Vamos tentar entender como identificar XPath do elemento com exemplos.
A imagem acima é tirada de http://www.wikipedia.org/.
Olhe para a imagem, existem três campos
- Caixa de texto Input
- selecionar cair para baixo
- botão de entrada.
E abaixo desses campos há expansão de nós XML relativas através firebug. Como você vê na imagem, você pode usar "id = searchInput" ou "name = search" para identificar a caixa de entrada de texto para digitar algo nele como exemplo dado abaixo.
New Test | ||
Command | Target | Value |
open | http://www.wikipedia.org/ | |
type | id=searchInput | ID Example |
Ou
New Test | ||
Command | Target | Value |
open | http://www.wikipedia.org/ | |
type | name=search | Name Example |
Tutorial XPath
Agora, se você quer identificar o mesmo elemento (caixa de texto de entrada) com XPath, então você pode usar qualquer uma sintaxe abaixo dada para a coluna de destino com o comando tipo no exemplo acima.
Localizando elemento usando XPath com exemplos caixa de texto de entrada para
1. Identificar XPath usando caminhocompleto do XML
xpath://body/div[3]/form/fieldset/input[2]/ / / /
Aqui = / / body é o nó raiz principal, / div [3] descreve a terceira div nó filho do nó pai corpo, / form descreve a form nó filho do nó pai div [3] / fieldset descreve o fieldset nó filho de form nó pai, / input [2]descreve a entrada do segundo nó filho do nó pai fieldset.
New Test | ||
Command | Target | Value |
open | http://www.wikipedia.org/ | |
type | xpath://body/div[3]/form/fieldset/input[2] | Xpath Example1 |
2. EscritaXPath usando last()
xpath://body/div[3]/form/fieldset/input[last()-2] / / / /
Aqui = / input [last () -2] descreve o nó de entrada superior 3 (entrada [2]) a partir de último nó de entrada.
xpath://body/div[3]/form/fieldset/*[last()-3] / / / /
Aqui / * [last () -3] descreve o quarto nó superior(entrada [2]) da última nó.
New Test | ||
Command | Target | Value |
open | http://www.wikipedia.org/ | |
type | xpath://body/div[3]/form/fieldset/input[last()-2] | Xpath Example2 |
3.Localizador XPath usando @ e atributo
XPath= / / body / div [3] / form / fieldset / input [@ type = 'pesquisar'] // / /
Aqui / input [@ type ='pesquisar'] descreve o nó de entrada com atributo type = 'pesquisar'
New Test | ||
Command | Target | Value |
open | http://www.wikipedia.org/ | |
type | xpath://body/div[3]/form/fieldset/input[@type='search'] | Xpath Example3 |
4.Expressão XPath usando @ e atributo
XPath= / / corpo / div [3] / form / fieldset / input [@ accesskey = 'F'] // / /
Aqui / input [@ accesskey = 'F'] descreve o nó com atributo de entrada @accesskey = 'F '.
New Test | ||
Command | Target | Value |
open | http://www.wikipedia.org/ | |
type | xpath://body/div[3]/form/fieldset/input[@accesskey='F'] | Xpath Example4 |
5.Sintaxe XPath usando @ e atributo
XPath= / / input [@ accesskey = 'F'] / / / /
Aqui / / input [@ accesskey = 'F'] descreve o nó de entrada com [email protected] accesskey = 'F' . Experimente por usá-lo em exemplo acima.
6.Exemplo XPath usando @ e atributo
XPath= / / input [@ type = 'pesquisar'] / / / /
Aqui / input [@ type = 'pesquisar'] descreve o nó de entrada com atributo type = 'pesquisar'. Experimente, utilizando-o no exemplo acima.
7. XPathXML usando / descendente :: palavra-chave
xpath://div[@class='search-container']/descendant::input[@accesskey='F'] // / /
Aqui eu usei descendente no meio. Neste caso eu descrevi apenas começando div nó com classe de atributo = 'pesquisar-container "e de entrada do nó final com accesskey = atributo' F'. Portanto, não precisa descrever entre os nós. Experimente por usá-lo no exemplo acima.
8. XPathexemplo consulta usando contém palavra-chave
XPath= / / input [contains (@ id ", searchInput")] // / /
Aqui contém palavra-chave para identificar atributo id com o texto "searchInput". Experimente, utilizando-o no exemplo acima.
9. XPathusando e com atributos
xpath://input[contains(@id,"searchInput") and contains(@accesskey,"F")] ")] / / //
Neste exemplo, ele vai olhar para dois atributos no nó de entrada. Experimente por usá-lo no exemplo acima
10. XMLvalor valor XPath usando posição ()
xpath://div[@class='search-container']/descendant::input[position()=2] // / /
Este XPath irá selecionar nó de entrada que está na posição de número 2 e é a caixa de texto de entrada para como mostrado na imagem. Experimente por usá-lo no exemplo acima.
11.Usando starts-with palavras chave
xpath://input[starts-with(@type,"s")] // / /
Neste exemplo, ele vai encontrar nó de entrada com o atributo é 'tipo' e seu valor está começando com 's '(aqui ele vai ficar type =' search ' ).
12.Usando OR (|) com condição XPath
xpath://input[@accesskey='F'] |//input[@id='searchInput']
xpath://input[@accesskey='F' or @id='searchInput'] / / / /
Em ambos estes exemplos, ele vai encontrar a caixa de entrada de texto com accesskey = 'F' ou @ id ='searchInput'. Se qualquer um encontrado, então ele irá localizar. Muito útil quando os elementos aparecem como alternativa.
13.Usando curinga * com a encontrar elemento XPath
XPath = / / * [@ accesskey = 'F']
14.Encontrar enésimo elemento filho de pai
XPath = / / corpo / * [3] / form / fieldset / * [2] / / / /
Este XPath é a caixa de texto para pesquisa. Aqui, / * [3] descreve o terceiro elemento filho do corpo, que é div [3]. Do mesmo jeito * [2] descreve o segundo elemento filho de fieldset que é de entrada [2]
Todos os exemplos acima são caixa de texto de entrada para. Agora deixe-me escrever XPath para drop down.
ExemplosXPath queda para baixo
1. xpath://body/div[3]/form/fieldset/select
2. xpath://body/div[3]/form/fieldset/select[last()]
3. xpath://body/div[3]/form/fieldset/select[@id='searchLanguage']
4. xpath://body/div[3]/form/fieldset/select[@name='language']
5. xpath://div[@class='search-container']/descendant::select[@name='language']
6. xpath://select[contains(@id,"searchLanguage")]
7. xpath://div[@class='search-container']/descendant::select[position()=1]
8. xpath://body/div[3]/form/fieldset/select[count(*)>1]
New Test | ||
Command | Target | Value |
open | http://www.wikipedia.org/ | |
select | xpath://div[@class='search-container']/descendant::select[position()=1] | label=English |
Outros Exemplos de XPath
1.Encontrar XPath para o link target 'url'
//a[@href='//meta.wikimedia.org/wiki/List_of_Wikipedias'] / / / /
Este exemplo XPath vai encontrar ligação com determinada URL (/ / meta.wikimedia.org / wiki /List_of_Wikipedias) na página.
2. Encontrar XPath do elemento com nenhuma criança
xpath://img[count(*)=0] ///// /
Este XPath é para logotipo do texto wikipedia que é exibição na parte superior da página. Este XPath vai encontrar esse elemento de imagem que não tem qualquer elemento filho. Aqui nó imagem é passado e não tem qualquer elemento filho.
xpath://div[2]/descendant::img[count(*)=0] / / / /
Este XPath é imagem do logotipo wikipedia que é exibição sob logotipo para texto.
Artigo traduzido de: http://software-testing-tutorials-automation.blogspot.com.br/2013/06/xpath-tutorials-identifying-xpath-for.html
Testando um botao
|
![]() |
Um amigo meu Luiz Felipe Fialho, grande desenvolvedor Front-End, posta em seu blog varios tutoriais simples, médios e complexos, para criação web, com html 5, UX entre outros. Então ele desenvolveu um tutorial para criar um botão que desenvolve a usabilidade do usuário(ux). Então resolvi criar um pequeno e simples Projeto de Testes para esta 'demanda'.
Assim, realizei o levantamento, especifiquei os testes, automatizei e executei os testes do botão.
Link do blog: http://www.felipefialho.com/blog/2013/tutorial-botao-de-progresso/#.Uk3VsH-VOhr
Plano de Testes Execução do clique do Botão
Objetivo do Teste - Validar se o botão está alterando à propriedade
Testes:
- Acessar o blog,
- encontrar o link,
- clicar no link,
- acessar a página de exemplo do botão,
- validar se o botão está na página,
- validar o botão
Objetivo do Teste - Validar se o botão está alterando à propriedade
Testes:
Acessar o blog,
encontrar o link,
clicar no link,
acessar a página de exemplo do botão,
validar se o botão está na página,
validar o botão
Teste 1 - Acessar o blog
Ações
Acessar a página do blog
Resultados
Página carrega e mostra informações do post
Teste 2 - Encontrar o link
Ações
Procurar o link para o teste do botão
Resultados
Link deve existir na no post
Teste 3 - Clicar no link
Ações
Clicar no link da página
Resultados
Link direciona à página onde o botão está
Teste 4 - acessar a página de exemplo do botão
Ações
Validar se a página existe
Resultados
Página redirecionada existe
Teste 5 - Validar se o botão está na página
Ações
Procurar o botão send
Resultados
Botão send existe
Teste 6 - Validar o botão
Ações
Passo 1 - Clicar no botão send
Passo 2 - Validar mudança de propriedade e o efeito de processar
Resultados
Passo 1 - Botão send altera propriedade e efeito
Automação com Selenium.
Arquivo de Testes nos downloads.
Resultado do teste: Sucesso!
O Objetivo do Teste foi realizado sem falhas.
Portanto, é isso pessoal.