dlg
was defined. This is important, because it looks like dlg
specification produced this error, not dlg.Project
. For dlg.Project
it would be something like ElementNotFoundError: {'best_match': 'Project', 'backend': 'uia', 'process': 2944}
.
.select()
is more proper action for this menu item.
Also for “uia” backend top window can be child of main form. In this case it should look like app.MainFormTitle.child_window(control_type=“window”, active_only=True).
Здравствуйте, в UIA прошелся инспектором по меню. отрыть 2го уровня меню удалось, но никак не может нажать на кнопку. Использовал, click, invoke, select , - падает просто указывая на строку вызова. app.UntitledNotepad.menu_select("File -> Exit") - работает, в другом приложении не работает - main_window.MenuSelect('Setup->Securities & Parties->Securities').click() - не работает. Cмог открыть меню, не не позволяет нажать на поледий отрытый елемент:
main_window.window(control_type="MenuBar", title="CrdMenuStrip").child_window(control_type="MenuItem", title="Setup").select()
main_window.window(control_type="MenuBar", title="CrdMenuStrip").child_window(control_type="MenuItem", title="Setup").\
child_window(control_type="MenuItem", title="Securities & Parties").select()
main_window.window(control_type="MenuBar", title="CrdMenuStrip").child_window(control_type="MenuItem", title="Setup"). \
child_window(control_type="MenuItem", title="Securities & Parties").child_window(control_type="MenuItem", title="Securities").click()
вегда вылетает ошибка:
def init(self, errors='strict'):
IncrementalDecoder.init(self, errors)
# undecoded input that is kept between calls to decode()
self.buffer = b""
Здравствуйте, Василий.
Кажется, что print_control_identifiers() обходит далеко не все объекты, если backend='uia'
Например, Inspect.exe в режиме UI Automation находит гораздо больше "детей", когда print_control_identifiers() от основного окна находит только "родителя".
python:
[IN]
import pywinauto
a = pywinauto.application.Application(backend='uia')
a.connect(process=3936)
p = a.window()
p.print_control_identifiers()
[OUT]
Control Identifiers:
Dialog - '1С:Предприятие - ERP' (L551, T144, R1460, B764)
['1С:Предприятие - ERPDialog', 'Dialog', '1С:Предприятие - ERP']
child_window(title="1С:Предприятие - ERP", control_type="Window")