Pesquisar

14 de janeiro de 2016

Automatização do Navegador utilizando o IMacros



A história é sempre a mesma. Todo dia você abre o navegador e realiza sempre o mesmo conjunto de atividades nele. Seja checar o site de notícias, dar uma olhada na cotação dos Títulos do Tesouro Direto, ou testar uma aplicação que você está desenvolvendo.

Nessas horas o IMacros cai como uma luva para realizar essas tarefas repetitivas. O IMacros é um gerador de macro, com ele você pode gravar/escrever uma macro para executar um conjunto de comandos no navegador (Figura 1). 


Figura 1: SkyNet - Um executor de macro: matar John Connor


Indo para a parte prática vamos imaginar a seguinte situação:

Você está desenvolvendo aquele sisteminha web porreta onde existe um formulário enorme para o usuário preencher. Você vai ter que testar a funcionalidade deste formulário, mas convenhamos, ficar preenchendo o formulário a cada teste é um pouco estressante (Figura 2).

Figura 2: Testando o formulário manualmente


Para o exemplo ficar mais didático, vamos reduzir o formulário do sistema para algo mais simples (Figura 3) e a partir disto vamos construir a macro para preencher os dados do formulário. 



Figura 3: formulário a ser preenchido

O formulário de exemplo é formado por 4 perguntas simples relacionadas com o café, sendo 3 delas de alternativas e 1 dissertativa. 


O primeiro comando do script a ser gerado é escolher a aba do navegador onde a macro irá rodar, no nosso caso vamos escolher a aba atual do usuário:

TAB T=1

Agora vamos indicar para o navegador qual a URL a ser visitada: 


Finalmente vamos preencher as respostas do formulário. Vamos colocar as seguintes respostas para as perguntas: 

1) Que tipo de café você gosta? 
Da padoca da esquina  

2) Qual o motivo da escolha anterior?
Por que sim

3) E como o café deve ser feito?
Com açúcar

4) Quantas xícaras de café você bebe por dia?
Sou programador, por volta de 7 litros


Os seguintes comandos devem ser adicionados no script: 

TAG POS=1 TYPE=INPUT:RADIO FORM=ID:ss-form ATTR=NAME:entry.1925481785&& VALUE:Da<SP>padoca<SP>da<SP>esquina CONTENT=YES

TAG POS=1 TYPE=INPUT:TEXT FORM=ID:ss-form ATTR=ID:entry_1632006682 CONTENT=Por<SP>que<SP>sim

TAG POS=1 TYPE=INPUT:RADIO FORM=ID:ss-form ATTR=NAME:entry.1254744817&&VALUE:Com<SP>açúcar CONTENT=YES

TAG POS=1 TYPE=INPUT:RADIO FORM=ID:ss-form ATTR=NAME:entry.753234863&&VALUE:Sou<SP>programador:<SP>por<SP>volta<SP>de<SP>7<SP>litros CONTENT=YES

onde: 

TAG POS=1 TYPE=INPUT:RADIO FORM=ID:ss-form 

busca um elemento do tipo radio no formulário de id ss-form

TAG POS=1 TYPE=INPUT:TEXT FORM=ID:ss-form

busca um elemento do tipo text no formulário de id ss-form

ATTR=NAME:entry.1925481785&&VALUE:Da<SP>padoca<SP>da<SP>esquina 

é a restrição do radio a ser selecionado: deve possuir o nome entry.1925481785 e valor "Da padoca da esquina" (lembre-se que três radio's são identificados por este nome, mas apenas um deles possui o valor indicado)

CONTENT=YES 

indica que o radio vai ser selecionado

O mesmo ocorre para as outras duas questões envolvendo radio's: 

a restrição na seleção: 

ATTR=NAME:entry.1254744817&&VALUE:Com<SP>açúcar
ATTR=NAME:entry.753234863&&VALUE:Sou<SP>programador:<SP>por<SP>volta<SP>de<SP>7<SP>litros

e a seleção do radio:

CONTENT=YES 


ATTR=ID:entry_1632006682 

é a restrição do elemento de texto a ser selecionado: o que possui o ID igual a entry_1632006682 

CONTENT=Por<SP>que<SP>sim

Indica o valor que vai ser colocado no elemento de texto


Só para visualizarmos os campos preenchidos vamos colocar o IMacros para esperar durante uns segundos:

WAIT SECONDS=6

Por último vem o comando para submeter o formulário 

TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:ss-form ATTR=ID:ss-submit


Com isto o preenchimento do formulário está automatizado e você pode tomar um cafézinho enquanto o IMacro realiza o preenchimento do formulário (Figura 5)



FIGURA 5: Você aceita uma xícara de café?



E o script fica da seguinte forma:

TAB T=1
URL GOTO=https://docs.google.com/forms/d/1nXuAGqskiTm8vU1Gm8bEMUpe9NSTgrtHhqlcsQgzgis/viewform?fbzx=-5150429435447904810
TAG POS=1 TYPE=INPUT:RADIO FORM=ID:ss-form ATTR=NAME:entry.1925481785&&VALUE:Da<SP>padoca<SP>da<SP>esquina CONTENT=YES
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:ss-form ATTR=ID:entry_1632006682 CONTENT=Por<SP>que<SP>sim
TAG POS=1 TYPE=INPUT:RADIO FORM=ID:ss-form ATTR=NAME:entry.1254744817&&VALUE:Com<SP>açúcar CONTENT=YES
TAG POS=1 TYPE=INPUT:RADIO FORM=ID:ss-form ATTR=NAME:entry.753234863&&VALUE:Sou<SP>programador:<SP>por<SP>volta<SP>de<SP>7<SP>litros CONTENT=YES
WAIT SECONDS=6
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:ss-form ATTR=ID:ss-submit