Aplicaciones de Windows¶
Warning
Estos métodos solo son compatibles con el sistema operativo Windows.
Utilizando los métodos a continuación, podrás interactuar con los elementos de una aplicación en ejecución.
Para interactuar con los elementos, puedes utilizar selectores e identificadores específicos. La tabla a continuación define los selectores que se pueden utilizar para conectarse a una aplicación y filtrar un elemento.
Important
Los valores de estos atributos en una aplicación se pueden ver utilizando herramientas de espionaje.
Obtén más detalles sobre cómo inspeccionar aplicaciones utilizando la Herramienta de Accesibilidad Insights para Windows.
Tip
Además de la herramienta mencionada anteriormente para inspeccionar la aplicación, es posible utilizar print_control_identifiers
,
un método propio de pywinauto
que devuelve los identificadores de control de la ventana.
Obtén más detalles en el tutorial.
Selector | Descripción |
---|---|
class_name | Elementos con esta clase de ventana |
class_name_re | Elementos cuya clase coincide con esta expresión regular |
parent | Elementos que son hijos de este elemento |
process | Elementos en ejecución en este proceso |
title | Elementos con este texto |
title_re | Elementos cuyo texto coincide con esta expresión regular |
top_level_only | Solo elementos de nivel superior (valor predeterminado=True) |
visible_only | Solo elementos visibles (valor predeterminado=True) |
enabled_only | Solo elementos habilitados (valor predeterminado=False) |
best_match | Elementos con un título similar a este |
handle | El identificador del elemento a devolver |
ctrl_index | El índice del elemento secundario a devolver |
found_index | El índice del elemento secundario filtrado a devolver |
predicate_func | Un gancho proporcionado por el usuario para una validación personalizada del elemento |
active_only | Solo elementos activos (valor predeterminado=False) |
control_id | Elementos con este ID de control |
control_type | Elementos con este tipo de control (cadena; para elementos de UIAutomation ) |
auto_id | Elementos con este ID de automatización (para elementos de UIAutomation ) |
framework_id | Elementos con este ID de marco (para elementos de UIAutomation ) |
backend | Nombre del backend a utilizar durante la búsqueda (el valor predeterminado None significa el backend activo actual) |
Backend¶
El tipo de backend se refiere a la tecnología de accesibilidad compatible con la aplicación. Puedes elegir entre dos backends disponibles:
- Win32
- UIA
¿Cuándo usar cada uno?¶
El backend Win32 se utiliza de forma predeterminada y a menudo se utiliza para aplicaciones como MFC, VB6, VCL, controles simples de WinForms y la mayoría de las aplicaciones antiguas.
El backend UIA se utiliza a menudo para aplicaciones como WinForms, WPF, aplicaciones de la Tienda, Qt5 y navegadores.
Algunas aplicaciones admiten ambos tipos, pero pueden comportarse de manera diferente al usarlos. Puedes utilizar las herramientas de espionaje como referencia para determinar qué tipo es más adecuado para tu aplicación. Obtén más detalles en este enlace.
Conectar a una aplicación¶
Puedes conectarte a una instancia de una aplicación abierta.
Es posible utilizar una combinación de selectores y también pasar
la tecnología de accesibilidad compatible con la aplicación (Backend
).
Note
Además de los selectores mencionados anteriormente, también puedes utilizar algunos selectores de conexión específicos:
- process: ID de proceso del objetivo
- handle: Identificador de ventana del objetivo
- path: Ruta utilizada para iniciar el objetivo
Buscar contextos¶
Puedes buscar ventanas y contextos de la aplicación, como una ventana principal o una más específica.
Buscar elementos¶
Puedes buscar elementos de la aplicación utilizando el contexto general o un contexto principal encontrado previamente.
# Searching for some specific window.
popup_window = bot.find_app_window(title="Confirmation Window", class_name="ThunderRT6MDIForm")
# Searching for the element that is in the context of the found window.
btn_continue = bot.find_app_element(from_parent_window=popup_window, title="Continue", class_name="ThunderRT6CommandButton")
# Performing some operations with the found element.
btn_continue.click()
Tip
La facilidad para inspeccionar y encontrar las propiedades de los elementos depende directamente de la estructura de la aplicación. En algunos casos, para mantener el control de la ventana principal después de una acción en una ventana secundaria, será necesario volver a declarar la ventana principal para recuperar el control sobre ella.
Info
El módulo de Aplicación se basa en las funcionalidades de la biblioteca pywinauto
,
obtén más detalles sobre los métodos disponibles para cada tipo de elemento en
este enlace.