How to perform Click action on Button or Text field by pywinauto
pywinauto
Solution
`pywinauto` requires 2-level hierarchy from Application object to control method. The structure of any call is
app.<DialogName>.<ControlName>.<method>(<params>)
In your case it should look like
app.Dialog.About.click()
If you need more realistic click, please use `click_input()` which moves cursor and clicks the control as user. `click()` only sends `WM_CLICK` and it's less reliable also.
`print_control_identifiers()` method prints the following information:
<ControlType> - '<Name a la WindowText>' (<rectangle>)
possible names which are most likely useful for object attribute access
Mentioned code is equivalent to the following:
app.window(best_match='Dialog', top_level_only=True).child_window(best_match='About').click()
`pywinauto` simplifies such constructions by overriding `__getattribute__` method.
Problem
I'm using pywinauto to automation Click on some button on DiffDaff software. My intention are: Step 1: Open DiffDaff software Step 2: Click 'About' button ``` from pywinauto.application import Application app = Application.start("C:\Program Files\DiffDaff\DiffDaff.exe") app.About.Click() ``` But, I'm on stuck at step 2, and the console show error: ``` File "build\bdist.win32\egg\pywinauto\application.py", line 238, in __getattr__ File "build\bdist.win32\egg\pywinauto\application.py", line 788, in _resolve_control pywinauto.findbestmatch.MatchError: Could not find 'About' in '['', u'DiffDaff - Compare Files, Folders And Web Pages', u'Internet Explorer_Hidden', u'DiffDaff - Compare Files, Folders And Web PagesDialog', 'Dialog']' ``` Where, '', u'DiffDaff - Compare Files, Folders And Web Pages', u'Internet Explorer_Hidden', u'DiffDaff - Compare Files, Folders And Web PagesDialog', 'Dialog' is the title of sotfware Also, using the command `'app.dialogs.print_control_identifiers()'` to know what exact position of 'About' button, there is the output: ``` Button - '&About' (L750, T388, R834, B411) '&About' '&AboutButton' 'Button3' ``` But it's so difficult to understand the parameter as above (what/where is L750, T388,...) - Would you like to explain all the mean of parameters as above ? And the way to perform 'Click' button ? Thanks.