pywinauto | Получение плитки из child_window () - PullRequest
1 голос
/ 03 августа 2020

Как получить заголовок CAS-31230026-RRYYM6 снизу

print_control_identifiers () в FormTitle возвращает это -

Control Identifiers:

Custom - ''    (L609, T259, R912, B323)
['CAS-31230026-RRYYM6Custom', 'Custom']
child_window(auto_id="FormTitle", control_type="Custom")
   | 
   | Static - 'CAS-31230026-RRYYM6'    (L613, T259, R908, B323)
   | ['CAS-31230026-RRYYM6Static', 'Static', 'CAS-31230026-RRYYM6']
   | child_window(title="CAS-31230026-RRYYM6", control_type="Text")

Ответы [ 2 ]

1 голос
/ 12 августа 2020

FormTitle.children_texts() сработано.

Это невозможно сделать так

wrapper = app.FormTitle.child_window(title="CAS-31230026-RRYYM6", control_type="Text").wrapper_object()
wrapper.window_text()

, поскольку title является динамическим c значением.

0 голосов
/ 11 августа 2020

Если вы имеете в виду «получить заголовок программно», вам нужен метод .window_text(). Если вы хотите получить доступ к другим методам элемента с указанным заголовком, просто скопируйте и вставьте строку child_window из вывода print_control_identifiers() (BTW dump_tree() - это псевдоним этого метода):

app.FormTitle.child_window(title="CAS-31230026-RRYYM6", control_type="Text").window_text()

Когда вы вызываете .window_text(), спецификация окна автоматически используется для поиска определенного элемента (Python оболочки для него), который содержит метод .window_text(), и вызывает этот метод. Более явное использование:

wrapper = app.FormTitle.child_window(title="CAS-31230026-RRYYM6", control_type="Text").wrapper_object()
wrapper.window_text()

Все это описано в Руководстве по началу работы . Также рекомендую поискать другие документы (Ожидание длительных операций, Руководство по удаленному выполнению). Надеюсь, они вам пригодятся.

...