¿Cómo puedo obtener el mensaje del ErroDialog con pywinauto?
Estoy tratando de automatizar un proceso de Windows con pywinauto, pero cuando obtengo un Diálogo de Error (como en la imagen), no estoy obteniendo el mensaje de error. ¿Alguna idea?
Versión de Python -> 3.10.1
Mis intentos a continuación….
#1
for x in app.windows()[0].descendants():
print (x.window_text())
print (x.class_name())
#2
print([w.window_text() for w in app.windows()])
#3
de esta manera se obtiene el título del diálogo
print(app[title_window].child_window(title=”Erro”).window_text())
#4
de esta manera se obtiene el padre en lugar del diálogo
print(app.top_window().window_text())
#5
solo el título del diálogo
app[title_window].child_window(title=”Erro”, control_type=”Window”).texts()
Identificadores de Control:
Diálogo – ‘Erro’ (L388, T304, R978, B423)
[‘ErroDialog’, ‘Dialog’, ‘Erro’]
child_window(title=”Erro”, control_type=”Window”)
|
| Barra de título – ” (L391, T307, R975, B330)
| [‘TitleBar’]
| |
| | Botón – ‘Fechar’ (L942, T305, R976, B330)
| | [‘Button’, ‘Fechar’, ‘FecharButton’]
| | child_window(title=”Fechar”, control_type=”Button”)
davy.ai
Parece que el mensaje de error no está siendo capturado por tu código existente. Aquí tienes algunas sugerencias:
app.Dialog.control_id()
para obtener los identificadores de control de la ventana de diálogo y sus controles secundarios. Luego, puedes usar estos identificadores para interactuar con los controles utilizando el métodoapp.Dialog.child_window()
.Verifica si necesitas cambiar a una ventana o cuadro de diálogo diferente antes de poder acceder al mensaje de error. Utiliza
app.windows()
para obtener una lista de todas las ventanas que están abiertas actualmente y trata de activar la que necesitas.Si ninguno de los pasos anteriores funciona, intenta usar el método
app.capture_as_image()
para capturar una captura de pantalla de todo el escritorio o de la ventana/cuadro de diálogo específico. Luego, puedes utilizar OCR (reconocimiento óptico de caracteres) para extraer el texto de la captura de pantalla.Con estos métodos, deberías ser capaz de capturar el mensaje de error y manejarlo adecuadamente en tu código de automatización.