25 de janeiro de 2016

Automatização do Navegador utilizando o IMacros - 2ª parte

Voltando ao exemplo do Imacros para preencher automaticamente um formulário. Vamos supor que você queira responder várias vezes o formulário, sendo que cada preenchimento vão ser colocadas informações ligeiramente diferentes no formulário (Figura 1). 



Figura 1: Minions - ligeiramente diferentes mas tudo igual 


A melhor forma de realizar esta tarefa é colocar as respostas em um arquivo csv, sendo cada linha do arquivo vai conter um preenchimento das respostas (colunas) do formulário. O arquivo contendo as respostas vai ter a seguinte estrutura (Figura 2).


Pergunta 1 Pergunta 2 Pergunta 3 Pergunta 4
Da Padoca da Esquina Por que eu quero Com açúcar Sou programador: por volta de 7 litros
Requentado Café de ontem é melhor Sem açúcar Duas
Feito na hora Não tem nada melhor do que o café feito na hora Filtrado com meia velha Uma

Figura 2: Formato do arquivo csv contendo os dados a serem utilizados

Após criar este arquivo csv basta fazer o IMacros obter as respostas deste arquivo. Portanto, a partir do script do artigo anterior:


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


Vamos alterar o script para retirar os dados a serem preenchidos no formulário a partir do arquivo csv criado anteriormente. 

Inicialmente vamos indicar a localização do arquivo (exemplo.csv) contendo os dados a serem inseridos no formulário. Neste exemplo o arquivo se encontra na pasta
"C:/temp".

SET !DATASOURCE "C:/temp/exemplo.csv"

Agora indicamos para o IMacros ignorar a primeira linha do arquivo. Vamos utilizar esta linha como cabeçalho (header) do arquivo csv. 

SET !LOOP 2
SET !DATASOURCE_LINE {{!LOOP}}

Finalmente vamos utilizar as colunas do arquivo csv para preencher os campos do formulário.

Para a pergunta nº1 a resposta se encontra na 1ª coluna do arquivo csv (COL1).

TAG POS=1 TYPE=INPUT:RADIO FORM=ID:ss-form ATTR=NAME:entry.1925481785&&VALUE:{{!COL1}} CONTENT=YES

Para a pergunta nº2 a resposta se encontra na 2ª coluna do arquivo csv (COL2).

TAG POS=1 TYPE=INPUT:TEXT FORM=ID:ss-form ATTR=ID:entry_1632006682 CONTENT={{!COL2}}

Para a pergunta nº3 a resposta se encontra na 3ª coluna do arquivo csv (COL3).

TAG POS=1 TYPE=INPUT:RADIO FORM=ID:ss-form ATTR=NAME:entry.1254744817&&VALUE:{{!COL3}} CONTENT=YES

Para a pergunta nº4 a resposta se encontra na 4ª coluna do arquivo csv (COL4).

TAG POS=1 TYPE=INPUT:RADIO FORM=ID:ss-form ATTR=NAME:entry.753234863&&VALUE:{{!COL4}} CONTENT=YES

Apenas para visualização do funcionamento do script indicamos para o IMACROS esperar alguns segundos antes de submeter o formulário:

WAIT SECONDS=6

E na última etapa submetemos o formulário:

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


E o script completo fica da seguinte  forma:

TAB T=1
URL GOTO=https://docs.google.com/forms/d/1nXuAGqskiTm8vU1Gm8bEMUpe9NSTgrtHhqlcsQgzgis/viewform?fbzx=-5150429435447904810

SET !DATASOURCE "C:/temp/exemplo.csv"
SET !LOOP 2
SET !DATASOURCE_LINE {{!LOOP}}

TAG POS=1 TYPE=INPUT:RADIO FORM=ID:ss-form ATTR=NAME:entry.1925481785&&VALUE:{{!COL1}} CONTENT=YES
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:ss-form ATTR=ID:entry_1632006682 CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:RADIO FORM=ID:ss-form ATTR=NAME:entry.1254744817&&VALUE:{{!COL3}} CONTENT=YES
TAG POS=1 TYPE=INPUT:RADIO FORM=ID:ss-form ATTR=NAME:entry.753234863&&VALUE:{{!COL4}} CONTENT=YES
WAIT SECONDS=6
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:ss-form ATTR=ID:ss-submit

Para rodar o script basta utilizar a opção Play (Loop) do Imacros (Figura 3)



Figura 3: Print screen da tela do Imacros com a opção Play (Loop)

Nenhum comentário:

Postar um comentário