我正在使用White自动化 C# WPF UI 的 BDD 测试。
我的前几个测试在我的开发机器(运行 Windows 7)上运行良好。但是,当我尝试在构建服务器(运行 Windows Server 2003 R2 的虚拟机)上运行相同的代码时,它无法正常工作。在这两种情况下,测试都是从命令行运行的,并且测试使用的是 Cuke4Nuke 框架。对于服务器,我通过远程桌面连接访问服务器。
代码如下所示:
var application = Application.Launch("whiteApp.exe");
var initializeOption = InitializeOption.NoCache;
var windowCriteria = SearchCriteria.ByText("whiteApp");
var window = application.GetWindow(criteria, initializeOption);
var criteria = SearchCriteria.ByAutomationId("rightButton");
var button = (Button) window.Get(criteria);
button.click();
问题是按钮单击事件在服务器上运行时不会触发。如果在 White 完成执行后 UI 保持打开状态,则可以单击该按钮(使用鼠标)。有趣的一点是,在运行 click 方法后,按钮确实显示了被单击的证据,如下图所示,在其他按钮的情况下,显示了鼠标悬停效果。