【问题标题】:notifyiconwpf and GUI automationnotifyiconwpf 和 GUI 自动化
【发布时间】:2017-08-10 21:47:36
【问题描述】:

我有一个使用此应用程序类型的应用程序,我需要将其自动化。不幸的是,我的自动化工具看不到应用程序窗口。是否有解决此问题的建议方法?我正在使用 pywinuto 进行自动化。我什至无法检查此应用程序的窗口数据。

编辑:

from pywinauto import Application
from pywinauto import taskbar

app = Application().start("path/to/my/app")
#make the window visible
taskbar.ClickHiddenSystemTrayIcon("My App") 
#When I query the number of windows the app has.
len(app.Windows())
#I get zero windows. There should be at least one window
#because the window is currently visible.

我也尝试了 findwindow 方法,我可以获得 WindowSpecification 但它没有连接到任何窗口。

【问题讨论】:

  • 你能在 cmd 提示符下运行应用程序吗?
  • @jmoon 我可以。它只是启动应用程序。
  • 您使用 pywinauto 的哪个后端?如果您在没有参数的情况下创建Application(),它默认使用“win32”,这对于 WPF 应用程序是错误的。请改用Application(backend="uia")
  • win32和uia都试过了。
  • @VasilyRyabov 顺便说一句,pywinauto 做得不错。它比 AutoIt 好得多。

标签: automated-tests caliburn.micro pywinauto


【解决方案1】:

为了使该应用程序可自动化,开发人员必须有条件地将 NotifyIconWPF 包装在标准窗口中,具体取决于命令行开关。完成此操作后,pywinauto 可以访问此应用程序的窗口。在我看来,它像 Caliburn Micro,故意禁用了该窗口类的可访问性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-01
    • 2019-02-03
    • 2016-08-23
    • 2010-10-20
    • 2011-02-26
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    相关资源
    最近更新 更多