c# - 白色 UIAutomation click() 停止在不同平台上工作

标签 c# wpf bdd ui-automation white-framework

我正在使用 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();

问题是在服务器上运行时,按钮的单击事件没有被触发。如果在怀特完成执行后 UI 保持打开状态,则可以单击该按钮(使用鼠标)。一个有趣的地方是,在运行点击方法后,按钮确实显示了被点击的证据,如下图所示,在其他按钮的情况下,显示了鼠标悬停效果。

Button before and after click

最佳答案

我不确定这是否是您的问题,但我注意到当使用 AnyCPU 平台构建并在 64 位处理器上运行的应用程序使用 White 时存在一些问题位系统。出于某种原因,每当它尝试在这些条件下移动鼠标时,它都会自动将鼠标推到屏幕底部而不是请求的位置。这意味着点击命令错过了它被告知点击的按钮。

如果您将自动化应用程序构建为 x86 应用程序,White 会正确地自动化鼠标。

关于c# - 白色 UIAutomation click() 停止在不同平台上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5631461/

相关文章:

c# - 在开发 facebook 图网站时如何使用本地主机?

c# - MVVM 命令选择最后添加的项目

wpf - 为什么在 DataTemplate 中使用控件时未设置 UserControl 中的自定义属性?

java - 遵循 BDD 时单元测试与端到端(集成本身)之间的关系

c# - 使用 linq 返回带有 list<object> 成员的对象

c# - 调用具有未知签名的方法

testing - 是否可以将 BDD 包含到一个即将完成的项目中?

unit-testing - Ruby - 使用 TDD/BDD 进行软件测试的实用方法

c# - 底层连接已关闭: An unexpected error occured on a send

c# - 带有枚举的 INotifyPropertyChanged