Executando verificação de segurança...
2

Automação em uma aplicação web legado

Há cerca de 2 anos recebi uma demanda no trabalho para desenvolver automações responsáveis por gerar relatórios em um sistema legado da Ambev chamado Promax.

O problema é que as automações desse sistema não funcionam com ferramentas tradicionais de automação web como Selenium ou similares. A alternativa que encontrei foi desenvolver a automação utilizando PyAutoGUI, simulando interações de mouse e teclado na interface.

No entanto, essa abordagem tem se mostrado bastante instável e difícil de manter, principalmente por depender de coordenadas de tela, tempo de espera e reconhecimento visual.

Gostaria de sugestões de alternativas ao PyAutoGUI para esse tipo de cenário, considerando que não é possível manipular diretamente o DOM da aplicação web. Existe alguma biblioteca ou abordagem mais robusta para automação nesse tipo de sistema?

Carregando publicação patrocinada...
2

O sistema é em Flash/Flex ou usa uma tecnologia tipo canvas para desenhar as coisas na tela?

Porque o PyAutoGUI está instável? O tamanho da tela muda? A questão das coordenadas, se for usar outra coisa vai ter o mesmo problema.

Como o colega Nilzao citou, eu também lembro de softwares para gerar bots para jogos. Não vou lembrar os nomes da época.

Pesquisando rápido encontrei gravadores de macro como https://www.jitbit.com/macro-recorder/, https://www.macrorecorder.com/ ou https://www.pymacrorecord.com/. Você pode pesquisar mais e encontrar resultados melhores.

2

Tem como explicar melhor por que não é possível usar Selenium ou playright? Se é web tem objeto dom, se é muito antigo, provavelmente tem tag form e os inputs tem nome, da pra chegar nos objetos dom. Se o sistema não tem mudanças de frontend, da pra chegar em qualquer objeto dom da interface web, nem que seja por array depois.

Outra abordagem, é ver as requisições que o navegador faz e fazer tudo via curl ou alguma chamada http em sua linguagem favorita.

Mas se insistir em posicionamento de tela, como por exemplo um app desktop, sugiro mudar o foco de ferramentas para algo parecido com macros de jogos MMO que automatizam cliques em tela.

1

Esse site tem um nível de 'gambiarra' absurda, pra conseguir acessar precisam ser feitas uma série de configuração no Edge, além de que esse site só é acessivel pelo edge em modo de compatibilidade com internet explorer.

Inspecionando o código da página renderizada ele mostra que o site está sendo renderizado dentro de um frame, quando vc abre esse frame, mostra outro e outro e outro frame.

1

Na situação que está é difícil até ver as requisições que ele faz.

Talvez usar mitmproxy entre o navegador e o backend para enxergar as requisições http, mapear, e fazer a automação sem usar esse frontend que tem 'inseption' de frames e iframes.

Se não tiver https, um tcpdump ou Wireshark também consegue enxergar para poder automatizar as funcionalidades que precisa.

Com mitmproxy, salvar sessões de funcionalidades bem organizadas, acredito que é possível usar um kiro ou antigravity da vida pra codar um frontend novo a partir dos logs do mitmproxy.

1