问题描述
我有一个带有TreeViews和TreeItems列表的应用程序,我需要在一个TreeItem中“双击”,但是我找不到解决方法。
这是我的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 app: 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()
谢谢!
解决方法
同时使用GetItem()和select()或click()方法, 您还可以使用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()