CodedUI Test + deferred / promise:Mouse.Click()执行单击,httpPost被调用,没有'then'或'finally'被击中

时间:2016-03-08 09:12:23

标签: javascript c# angularjs coded-ui-tests

我正在自动化测试,用户点击“计算”按钮。

计算许多值,然后在新网格中显示。在手动点击时,此计算大约需要4秒钟,以便额外的控件显示在屏幕上。

当我运行测试时,按钮被正确点击,但之后应用程序冻结。

我试过了:

  • WaitForControlReady
  • WaitForControlEnabled
  • WaitForControlVisible
  • WaitForControlExist
  • TryGetClickablePoint
  • Thread.sleep代码
  • Playback.Wait
  • Playback.PlaybackSettings.DelayBetweenActions
  • 执行{Thread.Sleep} while(!TryGetClickablePoint())
  • 重试

一切都没有成功。

计算按钮将调用javascript方法(带延迟/保证),然后调用c#方法进行实际计算。

点击后没有Playback.Wait(5000)时,没有发出关于c#代码的http.post。

所以我稍等了5秒,现在正在进行通话,我可以看到响应进来。但是,'.then'(或'.finally')没有被击中。< / p>

我看过这里CodedUI Test- Mouse.Click() on control dose not give expected outcome 在这里Coded UI Tests - Clicking button does suddenly not work但我无法从其中任何一个中扣除解决方案。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

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

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

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

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