#python-3.x #pywinauto
#python-3.x #pywinauto
Вопрос:
У меня есть приложение со списком TreeViews и TreeItems, и мне нужно «дважды щелкнуть» в одном элементе дерева, но я не могу найти способ сделать это.
Это мой код на python:
#Open Application
app = Application(backend="uia").start(ApplicationName, wait_for_idle=True)
time.sleep(2)
dlg = app.top_window()
#Pass and login
app.dlg.child_window(title="", auto_id="LoginAuthPasswordBox", control_type="Edit").set_text('******')
app.dlg.child_window(auto_id="Inici_o de sesión", control_type="Button").click()
time.sleep(60)
#Connect to main window
appfull = Application(backend="uia").connect(title_re="IC Business Manager - Interaction Reporter")
dlgfull = appfull.top_window()
Этот код работает нормально и внутри dlgfull.print_control_identifiers() Я получил это:https://i.stack.imgur.com/NtJM8.png
И это приложение mi:https://i.stack.imgur.com/7QWyB.png
Я хотел бы «дважды щелкнуть» по первому элементу «Informe estados de agente» ИЛИ открыть его и дважды щелкнуть по первому элементу внутри:https://i.stack.imgur.com/PHYQy.png
Не могли бы вы, пожалуйста, помочь мне в этом?
Некоторые строки, которые я тестировал, не работают:
appfull.dlgfull.child_window(title="Informe de estados de agentes", control_type="TreeItem")..click()
dlgfull.child_window(title="Informe de estados de agentes", control_type="TreeItem").click()
appfull.dlgfull.child_window(title="Informe de estados de agentes", control_type="TreeItem").double_click()
appfull.dlgfull.child_window(title="Informe de estados de agentes", control_type="TreeItem").get_child(child_spec="agentes").click()
Спасибо!
Ответ №1:
Используйте GetItem() наряду с методом выбора () или щелчка (), вы также можете использовать метод expand() для развертывания и просмотра элементов, которые не видны.
treeView = topWin.TreeView # We get the treeview object here.
# You can get item like this
node1 = treeView.GetItem([u'TopNodeName', 'node1Name'])
node1.select()
# OR something like this
treeView.GetItem([u'TopNodeName', 'node1Name']).click()
# OR access using index of that element in treeview like:
treeView.GetItem([1, 0]).click()