Automated tests notifyiconwpf和GUI自动化

Automated tests notifyiconwpf和GUI自动化,automated-tests,caliburn.micro,pywinauto,Automated Tests,Caliburn.micro,Pywinauto,我有一个使用这种应用程序类型的应用程序,我需要将其自动化。不幸的是,应用程序窗口对我的自动化工具是不可见的。有没有解决这个问题的建议方法?我在用pywinuto实现自动化。我甚至无法检查此应用程序的窗口数据 编辑: 我还尝试了FindWidow方法,我可以为这些方法获取Windows指定,但它没有连接到任何窗口。为了使此应用程序能够自动运行,开发人员必须有条件地将NotifyIconWPF包装在标准窗口中,具体取决于命令行开关。完成此操作后,pywinauto即可访问此应用程序的窗口。在我看来,

我有一个使用这种应用程序类型的应用程序,我需要将其自动化。不幸的是,应用程序窗口对我的自动化工具是不可见的。有没有解决这个问题的建议方法?我在用pywinuto实现自动化。我甚至无法检查此应用程序的窗口数据

编辑:


我还尝试了FindWidow方法,我可以为这些方法获取Windows指定,但它没有连接到任何窗口。

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

您可以在cmd提示符内运行该应用程序吗?@jmoon我可以。但它只是启动应用程序。您使用pywinauto的哪个后端?如果您创建的
Application()
没有参数,则默认情况下它使用“win32”,这对于WPF应用程序是错误的。请改用
应用程序(backend=“uia”)
。我已经试过使用win32和uia。@顺便说一句,VasilyRyabov在pywinauto上做得不错。这比自动驾驶要好得多。
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.