问题描述
如何获取treeView元素的名称?
treeView = addDevWin.TreeView
node2= treeView.GetItem([u'Parent',node1'])
node2.select()
level3nodes = node2.children()
# Output:
#[<pywinauto.controls.common_controls._treeview_element object at 0x068C8750>,<pywinauto.controls.common_controls._treeview_element object at 0x068C82F0>,<pywinauto.controls.common_controls._treeview_element object at 0x068D2750>,<pywinauto.controls.common_controls._treeview_element object at 0x068D2870>,<pywinauto.controls.common_controls._treeview_element object at 0x068D2770>]
我想获取树视图元素对象的名称,就像它们出现在UI中一样。这样我就可以选择它们如下:
for element in level3nodes:
if 'substring' in element:
node3= treeView.GetItem([u'Parent',node1',element])
node3.select()
使用:Windows 10,Python3。
解决方法
您需要.item_texts()
对象的方法treeView
。 “ win32”后端中的树视图项目是没有通常的Win32 API句柄的虚拟项目。这就是为什么您需要.get_item(...)
这是可行的解决方案:
treeElemList = [u'Parent',node1']
treeView = devWin.TreeView
node2= treeView.GetItem(treeElemList)
node2.select()
level3nodes = node2.children()
for element in level3nodes:
if 'substring' in element.text():
treeElemList .append(element.text())
break
node3= treeView.GetItem(treeElemList)
node3.select()