如何在 pywinauto 中连接到 control.exe 的子 window
How to connect to child window of control.exe in pywinauto
我可以通过下面的代码打开控制面板,也可以获得所有控制面板项目的 dump_tree。我的意图在一次控制面板下面。当我尝试单击网络和共享中心时出现以下错误。有人可以帮忙吗
我的意图:
- 在网络和共享中心的左侧面板中,打开更改高级共享设置
- 在网络发现下,单击“关闭网络发现”选项。
- 点击“保存更改”
- 转到工具->文件夹选项->查看。
-选中“隐藏受保护的操作系统文件”
-关闭保存
我的代码:
Application().start(r'control.exe', wait_for_idle=False)
app = Application(backend="uia").connect(title="All Control Panel Items", timeout=10)
main_window = app.window(title="All Control Panel Items")
#main_window.dump_tree()
Network=main_window.child_window(title="Network and Sharing Center", control_type="Hyperlink").select()
Network.select() # it expands the subtree
获取错误:
Traceback (most recent call last):
File "C:\Users\sandy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pywinauto\uia_defines.py", line 234, in get_elem_interface
iface = cur_ptrn.QueryInterface(cls_name)
File "C:\Users\sandy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\comtypes\__init__.py", line 1158, in QueryInterface
self.__com_QueryInterface(byref(iid), byref(p))
ValueError: NULL COM pointer access
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\sandy\AppData\Local\Programs\Python\Python36-32\My_Test\Step_46.py", line 16, in <module>
step_34()
File "C:\Users\sandy\AppData\Local\Programs\Python\Python36-32\My_Test\Step_46.py", line 11, in step_34
Network=main_window.child_window(title="Network and Sharing Center", control_type="Hyperlink").select()
File "C:\Users\sandy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pywinauto\controls\uiawrapper.py", line 605, in select
self.iface_selection_item.Select()
File "C:\Users\sandy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pywinauto\controls\uiawrapper.py", line 132, in __get__
value = self.fget(obj)
File "C:\Users\sandy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pywinauto\controls\uiawrapper.py", line 224, in iface_selection_item
return uia_defs.get_elem_interface(elem, "SelectionItem")
File "C:\Users\sandy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pywinauto\uia_defines.py", line 236, in get_elem_interface
raise NoPatternInterfaceError()
pywinauto.uia_defines.NoPatternInterfaceError
NoPatternInterfaceError
表示这个动作没有在app端实现。 SelectionItem 模式通常可用于 ListItem 或 TreeItem 元素。
超链接使用方法.invoke()
.
我可以通过下面的代码打开控制面板,也可以获得所有控制面板项目的 dump_tree。我的意图在一次控制面板下面。当我尝试单击网络和共享中心时出现以下错误。有人可以帮忙吗
我的意图: - 在网络和共享中心的左侧面板中,打开更改高级共享设置 - 在网络发现下,单击“关闭网络发现”选项。 - 点击“保存更改” - 转到工具->文件夹选项->查看。 -选中“隐藏受保护的操作系统文件” -关闭保存
我的代码:
Application().start(r'control.exe', wait_for_idle=False)
app = Application(backend="uia").connect(title="All Control Panel Items", timeout=10)
main_window = app.window(title="All Control Panel Items")
#main_window.dump_tree()
Network=main_window.child_window(title="Network and Sharing Center", control_type="Hyperlink").select()
Network.select() # it expands the subtree
获取错误:
Traceback (most recent call last):
File "C:\Users\sandy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pywinauto\uia_defines.py", line 234, in get_elem_interface
iface = cur_ptrn.QueryInterface(cls_name)
File "C:\Users\sandy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\comtypes\__init__.py", line 1158, in QueryInterface
self.__com_QueryInterface(byref(iid), byref(p))
ValueError: NULL COM pointer access
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\sandy\AppData\Local\Programs\Python\Python36-32\My_Test\Step_46.py", line 16, in <module>
step_34()
File "C:\Users\sandy\AppData\Local\Programs\Python\Python36-32\My_Test\Step_46.py", line 11, in step_34
Network=main_window.child_window(title="Network and Sharing Center", control_type="Hyperlink").select()
File "C:\Users\sandy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pywinauto\controls\uiawrapper.py", line 605, in select
self.iface_selection_item.Select()
File "C:\Users\sandy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pywinauto\controls\uiawrapper.py", line 132, in __get__
value = self.fget(obj)
File "C:\Users\sandy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pywinauto\controls\uiawrapper.py", line 224, in iface_selection_item
return uia_defs.get_elem_interface(elem, "SelectionItem")
File "C:\Users\sandy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pywinauto\uia_defines.py", line 236, in get_elem_interface
raise NoPatternInterfaceError()
pywinauto.uia_defines.NoPatternInterfaceError
NoPatternInterfaceError
表示这个动作没有在app端实现。 SelectionItem 模式通常可用于 ListItem 或 TreeItem 元素。
超链接使用方法.invoke()
.