Dúvida para Implementar Ideia

Eu vou testar a última versão que me mandou, se der qualquer erro eu faço o recorte pra você ver.
O numero xxxxx / xxxxx não ficou completamente selecionado na cor laranja.
Não lembro de ter visto dois Checkbox na captura, vou avaliar melhor e te passo com mais detalhes.
Muito obrigada, tenha um bom dia! :kissing_heart:

Douglas, :star_struck::star_struck::star_struck::star_struck::star_struck:

Ainda estou tentando ajustar as ações, mas acredito que vai funcionar muito bem, pelos testes que fiz, ele não errou nenhuma vez a Checkbox e esta conseguindo ir até a pagina de Impressão no Adobe Reader, preciso fazer com que ele faça o Ctrl+P na imagem e dai é só repetir o processo.

Tenho uma duvida aqui:
O CaminhoDaImagem seria exatamente o que?
Inseri como caminho,a pasta onde é salvo o download da imagem apos clicar ImprimirCapa, mas deu erro, o que posso estar fazendo de errado?

image

//Aguarda até a imagem aparecer na Tela dentro da área especificada:
AGUARDAR: “<caminho pasta download>”, posX, posY, width, height
AGUARDAR: “src/images/white.png”, 300, 500, 50, 20

Obrigada.

Então ao clicar em “Imprimir Capa” é baixada uma imagem? Você tentou fazer o Clicador aguardar esse arquivo de imagem aparecer numa determinada Pasta?

Essa instrução de Aguardar por Imagem não foi feita para “aguardar até arquivos de imagem aparecerem numa determinada Pasta”, ela foi feita para “aguardar que uma determinada coisa apareça na Tela”, o programa fica aguardando até essa coisa aparecer.

  • Mas que “coisa” o programa aguarda que apareça na Tela? Resposta: Isso você define através do CaminhoDaImagem, que deve apontar para um arquivo de imagem (e não uma pasta). Por exemplo, você pode aguardar que o ícone do Adobe Reader apareça em um determinado local da Tela, para fazer isso, recorte esse ícone e salve-o como imagem em algum lugar, depois, faça o CaminhoDaImagem apontar para a imagem salva desse ícone; assim o Clicador saberá o que ele está aguardando que apareça na Tela (está aguardando que apareçam os pixels do ícone do Adobe Reader);
  • Certo, mas o Clicador observará toda a Tela aguardando que esse ícone apareça em qualquer lugar dela? Resposta: o Clicador não precisa ficar observando todos os pixels da Tela em busca do ícone do exemplo acima, você pode definir uma Área Retangular da Tela e o Clicador observará apenas os pixels dentro dela em busca desse ícone. Assim, você delimita onde o ícone deve aparecer para que o Clicador continue a execução. Isso dá muito mais segurança contra erros, porque, se o ícone aparecer fora da área delimitada (o que pode indicar que as coisas estão fora do lugar, talvez pela janela ter sido movida ou a página rolada), o Clicador vai aguardar até ele aparecer dentro da área delimitada.

Eu dei um exemplo com um ícone, mas pode ser qualquer coisa, qualquer recorte da Tela. Pode ser, por exemplo, um recorte de um botão para você ter certeza de que o Clicador só irá clicar numa dada posição se o botão esperado estiver lá, caso contrário, ele aguardará até esse botão aparecer nessa posição.

Para delimitar uma Área Retangular da Tela onde será buscada a imagem do CaminhoDaImagem, basta definir as variáveis posX, posY, width, height.

Essa instrução não tem uma “sintaxe válida”, na verdade, eu coloquei aí só para explicar o que essa instrução Aguardar espera receber, como se fosse os nomes dos parâmetros. Mantenha ela comentada. A NumberFormatException parece ter ocorrido porque você inseriu o caracter “<”, que não é aceito. Aliás, acho que o Clicador também não aceitaria um caminho que contenha vírgula, isso pode confundí-lo.

Essa instrução está correta, e significa que o Clicador irá aguardar que apareça na Tela, dentro da área x=300 y=500 width=50 height=20, uma imagem toda branca (white.png é uma imagem só de pixels brancos).

A instrução Aguardar por Imagem é semelhante a instrução “Wait for pixel color” daquele Mouse Recorder que havia mencionado, só que mais avançada já que ela aguarda por uma imagem inteira (muitos pixels) ao invés de aguardar por um só.

1 curtida

Muito obrigada pelo esclarecimento Douglas, e desculpa minha ignorância.
Até a tela do Adobe ta tudo correndo bem, só acho que vou ter que adicionar alguns delay porque em alguns momentos não da o tempo certo do carregamento,quando clico em algum botão.

Veja como esta, preciso da sua ajuda, não estou conseguindo acionar o Ctrl+P
Depois preciso pressionar o botão imprimir acho que consigo e por ultimo fechar o Adobe o que posso estar fazendo errado?

//Aguarda o Campo Ctrl+F aparecer
AGUARDAR: 1000

//Avança para a Entrada que será escrita no Campo aberto pelo Ctrl+F
PROXIMA_ENTRADA

//Escreve a Entrada no Campo aberto pelo Ctrl+F
DIGITAR_ENTRADA_ATUAL

AGUARDAR: 2000

//Clica em Voltar
//CLICAR: 12, 45

//Instruções Comentadas que podem ser usadas:

//Clica nas coordenadas x=500 e y=200:
//CLICAR: 500, 200

//Detecta os pixels laranja e tenta clicar na Checkbox certa:
CLICAR_NA_CHECKBOX

//Clica no icone da impressora
CLICAR: 1520, 50

AGUARDAR: 500

//Clica Imprimir Capa
CLICAR: 1475, 123

AGUARDAR: 500

//Aguarda até a imagem aparecer na Tela dentro da área especificada:
//AGUARDAR: “”, posX, posY, width, height
AGUARDAR: “src/images/white.png”, 300, 500, 50, 20

//Abaixo faz-se Ctrl+P:
TECLAR: 17, PRESSIONAR
TECLAR: 80, PRESSIONAR_LIBERAR
TECLAR: 17, LIBERAR

Esse atalho para o Ctrl+P que você fez está correto, testei aqui e funcionou. Testei com essa pequena sequência:

//Delay para eu ter tempo de clicar na Janela do Chrome passando o Foco para ele
AGUARDAR: 2000

//Abaixo faz-se Ctrl+P:
TECLAR: 17, PRESSIONAR
TECLAR: 80, PRESSIONAR_LIBERAR
TECLAR: 17, LIBERAR

//Ao fazer o Ctrl+P acima abriu a tela de impressão do Chrome

Você pode testar essa pequena sequência aí para ver se o Robô aí está fazendo o Ctrl+P certinho. Tenha certeza de que a Janela do Adobe Reader está em Foco quando o Ctrl+P for feito, você pode até programar o Clicador para clicar nessa Janela (para que ela torne-se a Janela em Foco) antes de fazer o Ctrl+P.

Talvez o problema seja essa instrução que está sendo executada antes do Ctrl+P:

AGUARDAR: “src/images/white.png”, 300, 500, 50, 20

Você substituiu a imagem “white.png”? Você redefiniu esses argumentos? Ou os Argumentos atuais resolvem? Eu acho que o que você precisa ai é redefinir os Argumentos dessa instrução, escolhendo um recorte de Tela que faça o Clicador saber que o Adobe Reader já apareceu e que está tudo pronto para fazer o Ctrl+P.

Enquanto o Clicador estiver Aguardando por uma Imagem aparecer na Tela, ele irá mostrar algo assim:

Os labels vermelhos coloquei aqui para explicar o que são esses retângulos de contorno vermelho. O da esquerda é a Área onde a “imagem Buscada” deve aparecer para que o Clicador dê continuidade a sequência. O Retângulo da direita contém a “Imagem Buscada” pelo Clicador, para que você saiba o que ele está esperando que apareça.

Esses retângulos apareceram aí e permaneceram na Tela enquanto você esperava que o Clicador fizesse Ctrl+P? Se sim, significa que o Clicador não fez Ctrl+P porque ele está Aguardando a imagem white.png aparecer no local assinalado.

Você pode até fazer um teste, colocando o fundo branco do Bloco de Notas na área assinalada, ó fundo branco dará match com white.png (se você não substituiu essa imagem) e o Clicador continuará a Sequência (provavelmente fazendo Ctrl+P na Janela em Foco, que deverá ser o Bloco de Nodas nesse exemplo).

1 curtida

Valeuuuu Douglas, você é o cara que resolve tudooooooo!!! :clap::clap::grin:
Funcionou com o delay, ainda não executei uma massiva pra ver como ele vai reagir, to adicionando algumas ações ainda, mas ta funcionando muito bem, só preciso testar com mais entradas pra ver se ele vai acompanhar.
Muitíssimo obrigada, se puder me manda o projeto dele por favor. Que Deus te abençoe, muito obrigada mesmo e desculpa a perturbação.
Não precisou sibstituir a imagem “white.png”, os argumentos resolveram. Esta detectando o pixel certinho.

ClicadorDeCheckbox2.zip (42,3 KB)
ProjClicadorDeCheckbox.zip (64,8 KB)

Hum, talvez tenha funcionado por coincidência, pode ser que falhe depois. Se falhar, você vai ter que mexer nesses argumentos.

Estou enviando o Projeto e o Clicador que acabei de exportar. Ele tem uma correçãozinha e também configurações sobre a “Imagem Buscada” que aparece durante a execução de “Aguardar por Imagem”, é possível:

  • Escolher se a Imagem Buscada deve aparecer na Tela ou não;
  • Alterar a posição em que essa Imagem Buscada aparece.

Eu notei que a sequência que você está usando possui delays bem grandes, como aguardar 1s para o Campo do Ctrl+F aparecer. Acho que funcionaria se o delay fosse menor. Você pode ir experimentando diminuir esses delays. Mas o melhor mesmo (e mais trabalhoso) é substituir esses delays por instruções “Aguardar por Imagem” especialmente preparadas (com os Argumentos certos), isso diminuiria muito a chance do Clicador cometer erros, e ainda deixaria tudo mais rápido.

Que bom que deu certo, faz a testagem massiva buscando variar as situações dentro do que pode acontecer no fluxo de trabalho do dia-a-dia, assim problemas podem ser descobertos mais rápido.

de nada, Deus te abençoe também; se precisar pode me chamar.

eu fiz um check dos argumentos, e testei tbm outras imagens, mas como o fundo é branco, acabou que conhecidiu mesmo, e ta rolando, mas vou testar na massiva pra ver se da erros.

Muito obrigada por isso! :kissing_heart:

Então eu meio que estendi alguns delays porque ele em alguns momentos estava um comando a frente, dai pulava a ação, mas vou fazer esse processo de instruções “Aguardar por imagem” então, se é mais seguro é bem válido.

Sim, vou fazer todos os testes possíveis, estamos em um período de alta demanda e acabo não conseguindo me dedicar muito, mas vou fazer da forma mais efetiva pra ter o mínimo de erro. A parte mais difícil você já fez, agora é comigo. Rs Mais uma vez muito obrigada.

Douglas,

Me da uma ajuda, estou fazendo instruções “Aguardar por Imagem”, no paint eu consigo identificar o width, height, como encontro os pontos posX, posY? :thinking::flushed:

Quando você move o cursor sobre o Paint, ele mostra a posição X e Y do cursor nessa imagem no canto inferior esquerdo. Quando você clica e arrasta para criar uma seleção retangular ele “trava” a posição X e Y nesse canto inferior esquerdo, é essa posição X e Y que você precisa pegar. Mas, quando você soltar o click finalizando a seleção retangular, ele ira parar de mostrar a posição X e Y dessa área retangular, não mostrando nada quando você colocar o cursor sobre essa área retangular.

image

Valeu Douglas, somente para clarear aqui:

1- Posição X e Y eu uso a pagina inteira certo?

2 - Para width, height eu vejo pela imagem cortada ?

3- Para salvar a imagem que precisa aguardar para prosseguir com as ações, o procedimento é aquele mesmo da Checkbox, zoom total na pagina inteira, dai corto uma parte da imagem que o pixel sera identificado?

4- A área onde a imagem é buscada,o retângulo deve estar bem em cima quando ela é encontrada?
Estou fazendo alguns testes mas as ações não estão prosseguindo, não sei se pode ser o recorte da imagem.

É relativo a Tela Inteira, o pixel x=0 e y=0 é o 1º pixel que fica no canto superior esquerdo da Tela.

Pode ser, você deve definir como Argumentos um width que seja maior ou igual ao width-da-imagem-recortada, e um height que seja maior ou igual ao height-da-imagem-recortada.

zoom 100% se é com esse zoom que você usará no dia-a-dia. É o mesmo procedimento do recorte da checkbox.

A imagem-buscada deve estar dentro do retângulo vermelho, totalmente dentro dele; esse retângulo vermelho pode ter o mesmo tamanho da imagem ou ser maior que ela, mas não pode ser menor que ela nem em width nem em height.

Fiz alguns testes aqui e funcionou como o esperado. Experimente deixar o retângulo vermelho maior alterando os Argumentos e certifique-se que a imagem recortada sendo buscada está totalmente dentro dele.
Se não der certo, me envie um recorte da Tela mostrando a imagem-buscada e o que está dentro do retângulo vermelho que está esperando a imagem-buscada, no momento que deveria dar match e continuar a execução.

1 curtida

Muito obrigada Douglas,vou tentar aqui e te falo. :kissing_heart:
Duvida, sabe se consigo colocar em delay usando o ícone de carregamento da pagina, assim cada sequencia é prosseguída apos o carregamento da pagina,quando tem um X ele trava.
Estou tentando fazer isso, mas sem saber muito da possibilidade.
Caso consiga me manda a sequencia e a telinha de como capturou o ícone dentro do retângulo vermelho por favor.

Gostei da sua ideia! Fiz aqui, veja:

reload » reload.png

stop » stop.png

Acima são as imagens que recortei aqui, e essas as ações:

AGUARDAR: "src/images/stop.png", 60, 35, 29, 26
AGUARDAR: "src/images/reload.png", 60, 35, 29, 26

Funcionou corretamente, ele aguarda até o stop aparecer, depois aguarda até o reload aparecer.

Veja que no começo está aberto o google e o Clicador fica aguardando aparecer o stop (o retagulo vermelho ficou cortado na captura :confused: ), depois, enquanto está carregando o GUJ, ele fica esperando o reload aparecer; quando este último aparece significa que o GUJ já carregou por completo, e você pode ver que a execução termina.

Então acaba sendo uma forma bem eficiente e segura de garantir que o carregamento terminou :slight_smile:

ClicadorDeCheckbox2.zip (43,5 KB) » Clicador com essa Sequência e com as imagens necessárias.

1 curtida

Muitoo obrigada Douglas, é exatamente isso :heart_eyes:, vou incluir na sequencia e verificar como vai funcionar, amanha faço o teste na empresa e te conto como esta. :star_struck:

Douglas,

Deu certo, ta funcionando !!! :clap::tada::grinning:
Hoje fiz alguns testes e não ocorreu nenhum erro , muito obrigada por tudo.

De nada, que Deus te abençoe. :smile:

1 curtida