Season Tutoriais - Ep. 06: Como fazer loops
Olááááá Robotizadores … tudo bem? Eu sou a Paola Machado e vou ajudar a May Fernandes a produzir mais conteúdos aqui no blog para vocês. Nesse post-tutorial vamos falar sobre os loops e as diferentes formas de trabalhar com ele no Robot. As keywords do loop não estão em nenhuma library então, se tu ainda não é parceiro(a) do UserGuide. pode ser que seja um pouco difícil de achar. Então bora começar...
1 - Instalação da library
Não é necessário instalar nenhuma library para utilizar as keywords de loop, pois esses recursos são da biblioteca padrão do RobotFramework, a BuiltIn.2 - Loops com FOR
A sintaxe começa com :FOR e os dois pontos são necessários para separar a sintaxe das keywords normais, a próxima informação é a variável de "incremento" do loop, e a próxima informação deve ser a palavra IN (para listas) ou IN RANGE (para intervalo numérico), por fim são passados os números de início e fim que deseja iterar ou a lista que será percorrida.2.1 - Loop em uma lista de elementos:
Nesse exemplo tenho uma lista de frutas (@{FRUTAS}) e para cada item dessa lista uma interação é executada, o FOR acaba quando todos os itens (${ITEM}) da lista tiverem sido percorridos.
2.2 - Loop em um intervalo de números:
Nesse exemplo tenho um intervalo de 1 a 6, ou seja, o contador (${COUNT}) irá ser incrementado a cada execução até que as 5 interações acabem. No robot o último número não é contabilizado como uma interação, ou seja, a interação nº 6 não irá ocorrer.
3 - Repetindo uma única keyword várias vezes
O último loop é um pouco diferente, todas as ações são colocadas em uma keyword e nós repetimos essa keyword em um determinado nº de vezes. Obs.: Não é possível interromper o loop antes que todas as iterações tenham sido concluídas.#DICA: Essa keyword está descrita na library BuiltIn.
Nesse exemplo a keyword que eu quero que se repita 4 vezes é a "Log Vamos logar essa frase 4 vezes!!!"
4 - Keywords complementares
Temos mais 2 keywords para auxiliar na implementação com os loops:
Exit For Loop e Exit For Loop If
Elas fazem com que a execução do loop seja interrompido se a condição for verdadeira.
Exit For Loop e Exit For Loop If
Elas fazem com que a execução do loop seja interrompido se a condição for verdadeira.
Veja o código completo dos exemplos acima:
Em caso de dúvidas é possível encontrar a documentação detalhada no UserGuide do Robot!!!!
Até mais robotizadores!!!!
Até mais robotizadores!!!!
Gostaria de uma ajuda, estou começando com o robot, e preciso clicar no botão de "mais" e rolar o mouse, se tiver mais itens, clicar novamente. Como eu poderia fazer este caso?
ResponderExcluirComecei com a seguinte expressão
"${mais}= Run Keyword And Return Status Element Should Not Be Visible id='mais'
Run Keyword If '${mais}'=='True' Click Button id=mais
No caso eu poderia utilizar "Continue For Loop If" , como eu faria? Por gentileza, poderiam me ajudar. Desde já agradeço.
Olá!!!
ExcluirTente verificar a keyword Scroll Element Into View da library SeleniumLibrary... http://robotframework.org/SeleniumLibrary/SeleniumLibrary.html#Scroll%20Element%20Into%20View
Para mais duvidas, entre no nosso grupo de WhatsApp https://chat.whatsapp.com/GpbMka6NxEeLvk479JKXoJ, lá tem muitos usuários que podem ter passado por esse problema também!!!
Abraço
Boa tarde, gostaria de avisar que deu certo! Obrigado
ExcluirAeeeee!! \o
ExcluirSou um iniciante no RobotFramework. Tem como fazer um Loop Infinito? De imediato, podem pensar porque fazer um loop infinito? Tenho uma processo que precisa ficar esperando o retorno do Banco de Dados, então essa parte eu superei utilizando um Row Count, porém não consigo deixa esse processo em espera , pois quando chega no fim do 999999 cai fora. Alguém tem alguma sugestão?
ResponderExcluir*** Test Cases ***
Test Connetion
[Tags] DBConnect
Connect To DB ${DB_CONNECT_STRING}
FOR ${i} IN RANGE 9999999
${Empresaresults[0][0]} Row Count ${EMPRESA}
Run Keyword If ${Empresaresults[0][0]} == 1 Validacao Empresa
Sleep 10 second
END
Você pode utilizar a keyword da BuiltIn chamada "Wait Until Keywords Succeeds" (http://robotframework.org/robotframework/latest/libraries/BuiltIn.html#Wait%20Until%20Keyword%20Succeeds), porém mesmo assim é preciso passar um número de tentativas ou tempo limite que ficará tentando.
ExcluirObrigado. Você é demais.
ExcluirBom dia, estou precisando passar uma função por parametro no robot pois sem isso vou ter que repetir essa mesma função 3 vezes apenas para mudar o nome de outra função dentro dela, segue exemplo:
ResponderExcluirEnvia requisicao
[Arguments] ${nome do metodo} ${json} ${card} ${valor}
${account_holder} ${display_card} ${brand} ${expiry_month} ${expiry_year}
${json_file}= ${nome do metodo} ${json} ${card} ${valor}
${payload}= Evaluate json.loads($json_file) json
${payload2}= Evaluate json.dumps(${json_file}) json
${resp}= Post PS ${payload2}
[return] ${resp}
Em outras palavras, apenas tenho que mandar o nome da função que esta dentro da função "Envia requisicao". Apenas o nome
O link grupo do wats está off
ResponderExcluir