c# - 无法访问网页编码的 UI 错误

标签 c# coded-ui-tests

我正在运行一个编码的 UI 测试,点击一个超链接,例如,“Home”然后关闭并在网页上做一些不同的事情,然后尝试点击完全相同的“Home”链接并且错误是抛出的说法

The web page could not be accessed. If the page is refreshing, please wait until the page refreshes and then perform actions on it.

现在我在逐步完成测试时得到了这个,所以我知道在尝试单击此链接时页面没有刷新。通过 UITest 错误日志,我每次在抛出浏览器刷新错误之前都会看到这一行:

E, 6468, 13, 2013/10/18, 15:08:47.406, 271797587803, QTAgent32_40.exe, IEDOM : EnsureValid failed for html node: A, 52

我已经比较了这个链接的 uitest 映射,属性都是相同的,页面 html 也是相同的。 我在 IE10 中运行,KB2879017。 VS2012 4 RC.

知道是什么导致了这种情况吗?

注意:WaitForControlReady() 不会阻止这种情况的发生。硬编码的 Playback.Wait() 在这里也无济于事。

失败的代码行,第一次有效,但第二次在测试中执行时无效。

this.UIWindow.UIDocument.UIHomeHyperlink.WaitForControlReady();
Mouse.Click(this.UIWindow.UIDocument.UIHomeHyperlink);

请记住,用于 UIHomeHyperlink 映射控件的搜索属性与第二次执行这些行时完全相同。 Mouse.Click() 执行是在 VS2012 中抛出“网页不可用”错误时。

最佳答案

经过一些集思广益和反复试验后,得出的结论是映射控件在页面上找到后会保留属性。出于某种原因,这些属性与第二次的页面属性不完全匹配。

因此,这个问题的“解决方案”是每次我们进入页面时都强制更新整个映射的 UI___Window。编码的 UI 通过每次检查控件是否为 null 来防止在设计器文件中出现这种情况,如果是,则控件是新的。如果不是,则编码 UI 使用相同的控件及其首次定义/发现时的属性。希望这可以帮助其他遇到此错误问题的人。

关于c# - 无法访问网页编码的 UI 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19459081/

相关文章:

c# - 如何逐一生成IEnumerable的元素

c# - 将多维(安全)数组从 C# 传递到 COM

coded-ui-tests - 在 WPF DataGrid 中查找控件?使用编码的 UI

c# - 如何保留 Assert 失败数据

powershell - 使用tcm.exe运行测试导致找不到字段: 'Microsoft.TeamFoundation.TestManagement.Common.WitCategoryRefName.SharedDataSet'

c# - 带有自定义错误消息的 MVC 错误处理

c# - 重新排序围绕 volatile 的操作

c# - 加载了错误的 App.config

coded-ui-tests - 在手动编码 CodedUI 测试时,有没有办法在填充文本输入之前清除它们?

c# - CodedUI 测试更改 URL