我正在自动执行一个用户单击“计算”按钮的测试。

计算出许多值,这些值随后显示在新的网格中。手动单击该计算大约需要4秒钟,额外的控件才会显示在屏幕上。

当我运行测试时,正确单击了按钮,但是此后应用程序冻结了。

我试过了:


WaitForControlReady
WaitForControlEnabled
WaitForControlVisible
WaitForControlExist
TryGetClickablePoint
线程睡眠
播放等待
Playback.PlaybackSettings.DelayBetweenActions
在(!TryGetClickablePoint())进行{Thread.Sleep}
重试


一切都没有成功。

计算按钮将调用javascript方法(带有延迟/承诺),而javascript方法将依次调用c#方法进行实际计算。

单击后,如果没有Playback.Wait(5000),则不会生成指向c#代码的http.post。

因此,我等待了5秒钟,现在正在拨打电话,并且可以看到响应进入。但是,未按下“ .then”(或“ .finally”)。

我看过这里CodedUI Test- Mouse.Click() on control dose not give expected outcome
在这里Coded UI Tests - Clicking button does suddenly not work,但我无法从这两个中推论出一种解决方案。

任何帮助将不胜感激。

最佳答案

一旦浏览器打开,CodedUI就会注入JavaScript,不幸的是,这破坏了Ajax调用的处理方式并破坏了站点。

您需要将以下内容添加到您的app.config中

<add key="WebWaitForReadyLevel" value="3"/>


https://fluentbytes.com/how-to-prevent-codedui-tests-from-breaking-angular-ajax-calls/

10-05 18:33