【问题标题】:Cannot access Menu Bar Items via pywinauto无法通过 pywinauto 访问菜单栏项
【发布时间】:2018-09-25 14:34:13
【问题描述】:

我正在通过 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."

我尝试访问的菜单位于:

  • 编辑
  • 安排
  • 地理处理

任何帮助将不胜感激。

【问题讨论】:

  • 可能和issue #413有关联,但我还没看。
  • 谢谢瓦西里。我阅读并试图理解你所展示的问题。这超出了我的技能范围,但我再次感谢您的兴趣。

标签: python-3.x win32com pywinauto


【解决方案1】:

我终于可以通过 pywinauto 控制菜单了:

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

还有一个问题是使用 SendKeys() 模块控制键盘。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    • 2013-05-05
    相关资源
    最近更新 更多