es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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?

erroDialog image example

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”)

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el mensaje de error no está siendo capturado por tu código existente. Aquí tienes algunas sugerencias:

    1. Intenta usar 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étodo app.Dialog.child_window().
    2. 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.

    3. 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.

Comments are closed.