我正在运行一个单击超链接的编码 UI 测试,例如,“主页”然后关闭并在网页上执行一些不同的操作,然后尝试单击完全相同的“主页”链接并抛出错误说
无法访问网页。如果页面正在刷新,请等待页面刷新后再执行操作。
现在我在逐步完成测试时得到了这个,所以我知道在试图点击这个链接的时候页面没有刷新。挖掘 UITest 错误日志,我每次在引发浏览器刷新错误之前都会看到这一行:
E, 6468, 13, 2013/10/18, 15:08:47.406, 271797587803, QTAgent32_40.exe, IEDOM: html 节点的 EnsureValid 失败: A, 52
我已经比较了这个链接的 uitest 映射,属性都是相同的,页面 html 也是相同的。我在 IE10 中运行,KB2879017。VS2012 4 遥控。
任何想法是什么导致这种情况发生?
注意:WaitForControlReady() 不会阻止这种情况的发生。硬编码的 Playback.Wait() 也无济于事。
失败的代码行,这是第一次工作,但不是第二次在测试中执行。
this.UIWindow.UIDocument.UIHomeHyperlink.WaitForControlReady();
Mouse.Click(this.UIWindow.UIDocument.UIHomeHyperlink);
请记住,用于 UIHomeHyperlink 映射控件的搜索属性在第二次执行这些行时完全相同。Mouse.Click() 执行是在 VS2012 中抛出“Web page not available”错误时。