如何连接 control.exe 以获取 pywinauto 中的 dump_tree()

How to connect with control.exe to get the dump_tree() in pywinauto

我想通过 Pywinauto 自动化以下场景。

  1. 通过控制面板打开网络和共享中心
  2. 在网络和共享中心的左侧面板中,打开更改高级共享设置
  3. 在网络发现下,点击“关闭网络发现”选项。
  4. 点击“保存更改”
  5. 转到工具->文件夹选项->查看。
  6. 勾选'隐藏受保护的操作系统文件
  7. 关闭保存。

我可以通过下面的代码打开control.exe:

Application().start(r'control.exe', wait_for_idle=False)
app = Application(backend="uia").connect(path='')

我需要 dump_tree 才能在左侧面板上找到值。我需要提供什么作为 connect() 函数的路径

有两种方法可以连接到新 window。第一个是使用可执行文件名:

app = Application(backend="uia").connect(path='explorer.exe')

但是这种情况下还没有实现灵活的超时等待。第二种方式更可靠,不需要硬编码 time.sleeps.

app = Application(backend="uia").connect(title="All Control Panel Items", timeout=10)

由于我们将在下一个主要版本中修复的小问题,您需要明确的超时值。

要获得所有顶级 windows,您需要 app.windows() 并为每个级别执行 .window_text()。这个案例很简单:

main_window = app.window(title="All Control Panel Items")
# only WindowSpecification has .dump_tree() method for now
main_window.dump_tree()