Visão · OCR · RPA desktop

Automação de legado
que enxerga a tela.

Encontra botões e textos na tela, clica, digita e, se um passo falhar, tenta de novo. Feito para ERP, Oracle Forms, Delphi e Citrix — sem precisar de API do aplicativo.

pip install pyvizion
Marca pyvizion, verde amazônia sobre branco
Josias Azevedo da Silva · MIT · Python 3.9+
~5 mspara tirar o print da tela
~6×OCR com region vs tela cheia
21métodos clássicos estáveis
1.0.5série atual no PyPI

Como funciona

Você chama click_image("ok.png") ou click_text("Salvar"). A biblioteca tira um print da tela, procura o alvo e clica no meio dele.

1. Tira o print

Cópia rápida da tela (cerca de 5 ms), inclusive com dois monitores.

2. Acha a imagem

Você recorta o botão, salva o arquivo numa pasta (imagens/ok.png) e passa o caminho. A biblioteca procura essa figura na tela. Funciona mesmo se o Windows estiver com a tela aumentada (125% ou 150%).

3. Acha o texto

Lê a tela com Tesseract. Padrão em inglês; use tesseract_lang="por" se a tela for em português.

4. Clica e digita

Mouse e teclado. Com use_virtual_mouse o cursor não se move (Windows).

5. Se um passo falhar

Com backtrack=True, refaz o passo anterior e tenta de novo. Também espera o alvo aparecer ou sumir.

Se o alvo não estiver na tela, o método devolve False ou None. Vale if not vz.click_text("OK"). Erro de verdade só se faltar Tesseract ou o arquivo PNG não existir.

O que melhorou

Os métodos são os mesmos do bot-vision-suite 1.3.0 (click_image, click_text, backtrack…). O que mudou é o jeito de achar o alvo na tela: mais rápido e mais estável com a tela aumentada e com mais de um monitor.

Antes (PyAutoGUI / BVS) pyvizion
Tirar o print Lento (dezenas a centenas de ms) Cerca de 5 ms
Achar imagem Procura no print lento Acha mesmo se o Windows estiver com a tela aumentada
Achar texto Lê a tela inteira (caro) Passe region e fica cerca de 6× mais rápido
Esperar o alvo Cada tentativa paga o print lento wait_until_found dá para usar de verdade
Zoom / 2 monitores Clique no lugar errado; monitor da esquerda falha Clica no lugar certo nos dois monitores
Métodos 21 métodos no BotVision Os mesmos 21, mais janelas, click_any e CLI

Os “5 ms” e o “6×” são do jeito que a biblioteca tira o print e lê só a área que você pediu — não de um teste oficial publicado.

Começar

Uma instalação. Tesseract no sistema. Depois, o mesmo código de sempre.

pip install pyvizion
python -m pyvizion doctor

Windows: instalador UB-Mannheim. Linux: apt-get install tesseract-ocr.

Uso

from pyvizion import Vizion

vz = Vizion()
vz.click_image("menu.png", backtrack=True)
vz.click_text("Relatórios", backtrack=True)
vz.click_text("Confirmar", sendtext="{enter}")