【发布时间】:2020-05-01 05:44:55
【问题描述】:
这适用于生成诸如notepad.exe、winword.exe 和winver.exe 等进程的C# xUnit 测试项目。我需要在这些应用程序之间切换以进行测试(使它们成为前台窗口)。
到目前为止,我已经尝试了来自user32.dll 的SetForegroundWindow、SwitchToThisWindow、SetActive、SetFocus 等,但都不起作用。我试过使用 AttachThreadInput 技巧,但它似乎不起作用(也许我做错了?毕竟我是从控制台应用程序中使用它的)。我也试过press alt然后切换方法,但我不想这样做(记事本吃alt)。
【问题讨论】:
-
强烈建议(特别是,因为您正在进行“测试”):查看 Selenium。例如:automatetheplanet.com/…
-
声称该功能在完全按照文档中描述的方式工作时不起作用,这有点令人困惑。我强烈建议重新阅读docs.microsoft.com/en-us/windows/win32/api/winuser/… 并相应地调整您的期望。
-
这取决于您忘记提及的操作系统。看过例子@pinvoke.net?
-
“我需要在这些应用程序之间切换以进行测试” - 您误诊了您的需求。您真正需要的是自动化一组应用程序。如果操作正确,这些应用程序都不需要符合用户输入的条件。毕竟,这是一个无需用户交互即可运行的自动化测试。正确行事涉及UI Automation。列出的所有应用程序都实现了 UI 自动化所需的接口。
-
嗨,你的问题解决了吗?
标签: c# testing winapi console xunit