Estoy usando pywinauto para automatizar una GUI de Windows. app.machine.Reset.click () devuelve el siguiente error

  File "C:\PythonCAT\x64\2.6\lib\site-packages\pywinauto\application.py", line 236, in __getattr__
    return getattr(ctrls[-1], attr)
AttributeError: 'ButtonWrapper' object has no attribute 'click'

Intenté usar click_input() y click(). Recibo el mismo mensaje de error AttributeError: 'ButtonWrapper' object has no attribute 'click'. También leí documentación relacionada con pywinauto

La solución en la publicación a continuación no funcionó para mí. Estoy usando python 2.6.6 y pywinauto versión 0.5.0

No se puede automatizar el botón, haga clic en "Oracle VM virtual box" usando pywinauto en python

from pywinauto.application import Application


def test():
    try:
         os.startfile(r'''machine.exe''')
         app= Application().connect(path=r'''machine.exe''')
         app.machine.DrawOutline()
         app.machine.PrintControlIdentifiers()
         #app.machine.menu_select("File->Exit")
         app.machine.Reset.click()
         #app.machine.Reset.click_input()
     finally:
         print(" done")
test()

app.machine.Reset.click() devuelve el siguiente error:

  File "C:\PythonCAT\x64\2.6\lib\site-packages\pywinauto\application.py", line 236, in __getattr__
    return getattr(ctrls[-1], attr)
AttributeError: 'ButtonWrapper' object has no attribute 'click'

Se agradece cualquier ayuda. Todas las publicaciones que he leído recomiendan usar click () o invoke () o click_input (). Intenté usar cada uno de ellos y recibí el mismo mensaje de error para cada uno. Estoy intentando hacer clic en el botón Restablecer en la GUI.

0
SKS 9 oct. 2019 a las 22:19

1 respuesta

La mejor respuesta

App.machine.Button9.Click () funcionó para mí.

App.machine.PrintControlIdentifiers () me dio la lista de identificadores para los controles presentes en la GUI. Uno de ellos es Button9, así que en lugar de usar el nombre del botón llamado Reset using Button9 funcionó bien.

1
SKS 11 oct. 2019 a las 13:55