我正在尝试展开或双击()树项。 当使用鼠标光标打开rdp并双击输入()时,此代码工作正常,但由于没有鼠标光标而关闭rdp时,此代码不工作
如果我尝试单击()或双击(),它们将不起作用
app = Application(backend="uia").connect(title='myApplication')
dlg = app.window(title='Control Panel of myApplication')
#this click() works without rdp
dlg.child_window(auto_id="MainPanelForm.gridLayoutWidget.MainPanelWidget.rightFrame.setupWidget.setupButton").click()
dlg.child_window(title="Система", control_type="TreeItem").double_click_input()
如果我尝试dlg.child_window(title="Система", control_type="TreeItem").print_control_identifiers()
TreeItem - 'Система' (L3102, T196, R3877, B220)
['СистемаTreeItem', 'Система', 'TreeItem']
child_window(title="Система", control_type="TreeItem")
我怎样才能用pywinauto做到这一点,或者这是不可能的,我需要用另一种方式来尝试
以下是我得到的方法:
Pattern object attributes: ['AddRef', 'GetCachedColumnHeaderItems',
'GetCachedRowHeaderItems', 'GetCurrentColumnHeaderItems',
'GetCurrentRowHeaderItems', 'QueryInterface', 'Release', '_AddRef',
'_IUIAutomationTableItemPattern__com_GetCachedColumnHeaderItems',
'_IUIAutomationTableItemPattern__com_GetCachedRowHeaderItems',
'_IUIAutomationTableItemPattern__com_GetCurrentColumnHeaderItems',
'_IUIAutomationTableItemPattern__com_GetCurrentRowHeaderItems',
'_IUnknown__com_AddRef', '_IUnknown__com_QueryInterface',
'_IUnknown__com_Release', '_QueryInterface', '_Release', '__bool__',
'__class__', '__cmp__', '__com_interface__', '__ctypes_from_outparam__',
'__del__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__',
'__format__', '__ge__', '__getattr__', '__getattribute__', '__gt__',
'__hash__', '__init__', '__init_subclass__', '__le__', '__lt__',
'__map_case__', '__module__', '__ne__', '__new__', '__reduce__',
'__reduce_ex__', '__repr__', '__setattr__', '__setstate__',
'__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_b_base_',
'_b_needsfree_', '_case_insensitive_', '_compointer_base__get_value',
'_idlflags_', '_iid_', '_methods_', '_needs_com_addref_', '_objects',
'_type_', 'from_param', 'value']
所有已知的远程执行方法都收集在Remote Execution Guide中
您可能应该自定义RDP设置,以便在不丢失active desktop的情况下最小化/断开连接
下面我将介绍一些不太可靠的方法,这些方法可能不适用于某些应用程序,如Qt5
同样对于TreeItem,值得尝试方法
.select()
,它应该使用SelectionItem模式。无法在Inspect.exe中检查此模式。请参见屏幕截图:也可以通过菜单“操作”尝试可用的模式
另外,对于您的情况,可用的模式是
TableItem
,它可以通过属性(而不是方法!).iface_table_item
访问。只需按内置函数dir()
列出此模式的所有可用方法:模式对象作为COM对象来自
UIAutomationCore.dll
。我们还没有在pywinauto中的任何地方使用它,但它可以作为任何普通Python对象使用和检查相关问题 更多 >
编程相关推荐