Есть ли способ получить ту же информацию с Pywinauto из оболочки, чем объект WindowsSpecification? - PullRequest
0 голосов
/ 21 февраля 2019

Таким образом, я получаю эту информацию из оболочки, используя функцию get_focus() в окне:

{'class_name': 'Edit', 'friendly_class_name': 'Edit', 'texts': ['', ''], 'control_id': 232, 'rectangle': <RECT L251, T523, R485, B545>, 'is_visible': True, 'is_enabled': True, 'control_count': 0, 'style': 1342242944, 'exstyle': 516, 'user_data': 0, 'context_help_id': 0, 'fonts': [<LOGFONTW 'Arial' -13>], 'client_rects': [<RECT L0, T0, R230, B18>], 'is_unicode': False, 'menu_items': [], 'automation_id': '', 'selection_indices': (0, 0)}

И я знаю, что это то же самое, что WindowSpecification (обнаруживается с помощью control_identifiers(), а затем wrapper_object() function):

Edit - ''    (L251, T523, R485, B545) 
['Edit2', 'TunnusEdit']
child_window(class_name="Edit")

Как видите, оболочка не имеет названия TunnusEdit.Могу я как-нибудь получить эту информацию из оболочки?

1 Ответ

0 голосов
/ 22 февраля 2019

Нет, сейчас вам нужно создать многоуровневую спецификацию WindowSpecification.Мы планируем добавить эту функцию в будущих выпусках.Но не могу обещать, что это будет быстро.См. issue # 570 .

EDIT1: если вы используете бэкэнд "win32" (по умолчанию для Application()), он поддерживает только 2 уровня WindowSpecification: первый для topокно уровня и второе для любого потомка.Так что-то вроде app.MainWindowTitle.TunnusEdit.wrapper_object() поможет.

...