我只能从使用 DevExpress 控件的 WinForms 经验谈起。
基本上,性能还有很多不足之处。主要的性能问题在于具有大量嵌套布局控件的复杂 UI。
编码 UI 中的回放使用 WinForms 应用程序中的嵌套链查找系统。这意味着您不能简单地通过 Id 搜索控件,而是需要通过父->子层次结构(也称为“搜索限制器”)。
我可以想象,对于 Web 而言,回放会快得多,您可以通过控件的 ID 直接在 DOM 上搜索精确匹配。
下一个巨大的性能问题是网格和树。或具有行/列的控件。在这里,在 Winforms 中,每次您想“可靠地”获取控件时,测试引擎都会对控件进行完整查找。这使它变慢。
我的建议是使用记录器在 WPF 应用程序中定位深度嵌套的网格控件。一旦它在 UI 地图中,然后编写代码来遍历控件中的所有项目 - 测试设置和动态获取。
您可能会对性能感到满意。我在这里找到了通过使用本机 Win32 方法来绕过性能的方法,并考虑只使用单击路径进行导航,这样就无需查找至少导航控件,但如果 UI 发生更改,这将需要额外的维护。
我可以说的一件事是,我发现的最佳性能是:
private static WaitForReadyLevel _waitLevel = WaitForReadyLevel.Disabled;
Playback.PlaybackSettings.SearchTimeout = 12000;
Playback.PlaybackSettings.AlwaysSearchControls = false;
Playback.PlaybackSettings.WaitForReadyLevel = _waitLevel;
Playback.PlaybackSettings.DelayBetweenActions = 100;
Mouse.MouseDragSpeed = 9000;
希望这可以帮助。