Aplicativos Windows¶
Aviso
Esses métodos são suportados apenas no sistema operacional Windows.
Usando os métodos abaixo, você poderá interagir com os elementos de um aplicativo em execução.
Para interagir com os elementos, você pode usar seletores e identificadores específicos. A tabela abaixo define os seletores que podem ser usados para se conectar a um aplicativo e filtrar um elemento.
Importante
Os valores desses atributos em um aplicativo podem ser visualizados usando ferramentas de espionagem.
Veja mais detalhes sobre a inspeção de aplicativos usando a ferramenta Accessibility Insights for Windows.
Dica
Além da ferramenta acima para inspecionar o aplicativo, é possível usar print_control_identifiers
, um método do pywinauto
que retorna os identificadores de controle da janela.
Veja mais detalhes em tutorial.
Seletor | Descrição |
---|---|
class_name | Elementos com a classe da janela |
class_name_re | Elementos cuja classe corresponde a uma expressão regular |
parent | Elementos que são filhos deste |
process | Elementos em execução neste processo |
title | Elementos com este texto |
title_re | Elementos cujo texto corresponde a esta expressão regular |
top_level_only | Apenas elementos de nível superior (padrão = True ) |
visible_only | Somente elementos visíveis (padrão= True) |
enabled_only | Somente elementos habilitados (padrão= False) |
best_match | Elementos com um título semelhante a este |
handle | O identificador do elemento a ser retornado |
ctrl_index | O índice do elemento filho a ser retornado |
found_index | O índice do elemento filho filtrado para retorna |
predicate_func | Um gancho fornecido pelo usuário para uma validação de elemento personalizado |
active_only | Somente elementos ativos (padrão= False) |
control_id | Elementos com este ID de controle |
control_type | Elementos com este tipo de controle (string; para UIAutomation elementos) |
auto_id | Elementos com este ID de automação (para UIAutomation elementos) |
framework_id | Elementos com este ID de estrutura (para UIAutomation elementos) |
backend | Nome de back-end para usar durante a pesquisa (padrão = None significa atual back-end ativo) |
Tipo de acessibilidade da aplicação (Backend)¶
O tipo de back-end refere-se à tecnologia de acessibilidade suportada pelo aplicativo. Você pode escolher entre dois back-ends disponíveis:
- Win32
- UIA
Quando usar cada um?¶
Win32 é o back-end usado por padrão, é frequentemente usado para aplicações: MFC, VB6, VCL, controles simples de WinForms e aplicativos legados mais antigos.
O back-end UIA é frequentemente usado para: WinForms, WPF, aplicativos da Store, Qt5 e navegadores.
Alguns aplicativos suportam ambos os tipos, mas podem ter um desempenho diferente ao usá-los. Você pode usar as ferramentas de espionagem como referência para definir qual tipo é mais apropriado para o seu aplicativo. Veja mais detalhes neste link.
Conecte-se a um aplicativo¶
Você pode se conectar a uma instância de um aplicativo aberto. É possível usar uma combinação de seletores e também passar a tecnologia de acessibilidade suportada pelo aplicativo (Backend
).
Observação
Além dos seletores acima, você também pode usar alguns seletores de conexão específicos:
- process: ID do processo do alvo
- handle: Identificador de janela do alvo
- path: Caminho usado para iniciar a aplicação alvo
Encontrando contextos¶
Você pode procurar por janelas e contextos do aplicativo, como uma janela principal ou uma mais específica.
Encontrando elementos¶
Você pode procurar elementos de aplicativos usando o contexto geral ou um contexto pai encontrado anteriormente.
# Procurando por alguma janela específica.
popup_window = bot.find_app_window(title="Confirmation Window", class_name="ThunderRT6MDIForm")
# Procurando o elemento que está no contexto da janela encontrada.
btn_continue = bot.find_app_element(from_parent_window=popup_window, title="Continue", class_name="ThunderRT6CommandButton")
# Executando alguma operação com o elemento encontrado.
btn_continue.click()
Dica
A facilidade de inspecionar e localizar as propriedades do elemento depende diretamente da estrutura do aplicativo. Em alguns casos, para manter o controle da janela principal após uma ação em uma janela secundária, será necessário redeclarar a janela principal para recuperar o controle sobre ela.
Info
O módulo Application é baseado nas funcionalidades da biblioteca pywinauto
, veja mais detalhes sobre os métodos disponíveis para cada tipo de elemento
neste link.