无法通过pywinauto

时间:2018-09-25 14:34:14

标签: python-3.x win32com pywinauto

我正在通过Python自动执行以下程序:( Surfer

http://www.goldensoftware.com/products/surfer

我无法使用 win32com.client 控制它的某些部分(程序库不支持它)。我需要开始工作的部分可以通过使用程序菜单栏来完成。我只需要完成5次点击即可。因此,作为替代方案,我一直尝试使用 pywinauto (我第一次尝试使用它)。但是这次我无法获得菜单栏项。我尝试通过swapy(https://github.com/pywinauto/SWAPY)分析菜单,但MenuItems字段显示为空(作为空列表[])。

这是一些测试代码:

from pywinauto.application import Application

app = Application(backend="uia").connect(process=2984)  # tried "win32" as backend also

srf = app.window(process=2984)

srf.menu_select("Help")

我得到了错误:

"RuntimeError: There is no menu."

我要访问的菜单位于:

  • 编辑
  • 安排
  • 地理处理

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

我终于能够通过pywinauto来控制菜单:

app_dialog.child_window(title="Menu Bar").set_focus()

从那里开始,需要使用SendKeys()模块控制键盘。

这是一种解决方法,但可以完成工作。