Visual studio 2013 编码UI测试-不一致地找到HtmlDocument

Visual studio 2013 编码UI测试-不一致地找到HtmlDocument,visual-studio-2013,internet-explorer-11,coded-ui-tests,Visual Studio 2013,Internet Explorer 11,Coded Ui Tests,我在获取Visual Studio 2013的编码UI测试框架以一致地查找HtmlDocument时遇到问题 我只是最近才经历过这个问题,它在以前工作得很好。不幸的是,自从我创建了这些测试以来,很多事情都发生了变化(包括我的Visual Studio和Internet Explorer版本等),因此很难确定是什么变化导致了这种情况。此外,它大约有2/3的时间工作,这使得故障排除更加困难 在我的测试中,我有一组不同的用户登录到测试站点并执行各种操作。为此,我通过UI测试生成器捕获了在按住shift

我在获取Visual Studio 2013的编码UI测试框架以一致地查找
HtmlDocument
时遇到问题

我只是最近才经历过这个问题,它在以前工作得很好。不幸的是,自从我创建了这些测试以来,很多事情都发生了变化(包括我的Visual Studio和Internet Explorer版本等),因此很难确定是什么变化导致了这种情况。此外,它大约有2/3的时间工作,这使得故障排除更加困难

在我的测试中,我有一组不同的用户登录到测试站点并执行各种操作。为此,我通过UI测试生成器捕获了在按住shift键的同时右键单击Internet Explorer按钮,然后单击“以不同用户身份运行”菜单选项的操作。测试继续输入用户凭据并加载其主页。(每个用户在我的机器上都有一个配置文件,他们都有谷歌作为他们的主页。)在
浏览器窗口中调用
NavigateTo()
,允许我加载站点,测试正式从那里开始

当我尝试调用
NavigateTo()
时发生挂起,并给出以下错误:

注意:如果可以找到主页,则不存在处理任何先前HtmlDocuments或Browser窗口的问题

... threw exception.
Microsoft.VisualStudio.TestTools.UITest.Extension.UITestControlNotFoundException:
Microsoft.VisualStudio.TestTools.UITest.Extension.UITestControlNotFoundException:
The playback failed to find the control with the given search properties.
Additional Details: 
TechnologyName:  'MSAA'
ControlType:  'Button'
Name:  'Internet Explorer'
---> System.Runtime.InteropServices.COMException:
     Error HRESULT E_FAIL has been returned from a call to a COM component..
编辑:有时会出现以下错误:

...threw exception. Microsoft.VisualStudio.TestTools.UITest.Extension.UITestControlNotFoundException: Microsoft.VisualStudio.TestTools.UITest.Extension.UITestControlNotFoundException: Unable to find Windows Internet Explorer window with 'Google - Internet Explorer' in the title. ---> Microsoft.VisualStudio.TestTools.UITest.Extension.UITestControlNotFoundException: The playback failed to find the control with the given search properties. Additional Details: 
TechnologyName:  'MSAA'
ControlType:  'Window'
Name:  'Google - Internet Explorer'
类名:“IEFrame” --->System.Runtime.InteropServices.COMException:调用COM组件时返回错误HRESULT E_FAIL

我在
浏览器窗口
HtmlDocument
上尝试了各种
等待
调用

我已经尝试包含一个
try
/
catch
块,如果失败,它将忘记
HtmlDocument
,然后重试(因此它研究
HtmlDocument
),作为以防万一,但这也不起作用

搜索浩瀚的知识网络并没有帮助我解决这个问题(使用
BrowserWindows
HtmlDocuments
是一件小事,我似乎只能找到与查找特定控件有关的问题)


有人对我可以尝试的其他方法有什么想法或建议吗?

我通过减少运行测试的PC上的计算负载解决了这个问题。看起来,一个没有运行应用程序“负担”的系统运行得很好。我不知道是什么条件造成了一个“沉重”的环境。

好吧,我撒谎了。我找到了真正的解决办法。我授予我的测试帐户在运行测试的机器上的管理权限。简单。这可能不太理想,但是如果测试帐户被破坏,那么它们在其他任何地方都不能做任何事情

它似乎在运行一个没有管理权限的应用程序,然后尝试在编码的UI测试中捕获它失败,因为该应用程序运行时的权限比Visual Studio实例的权限少


所以我的基于角色的测试正在运行,而且速度很快。

我想我需要提供关于我的开发环境的信息,是吗Windows 7 Professional SP1-Visual Studio 2013更新2-Internet Explorer 11.0.5我在WaitForControl上遇到了几乎所有的相关问题。我转而使用了TryGetClickablePoint()(我不记得在哪里找到了这个建议)。令人沮丧的!!!像这样的计时问题指向WaitForControlReady的松散耦合性质和“完成”的浏览器状态。不确定什么是完美的解决方案,但请放心,它必须在事件处理程序中,而不是计时器中。只是减少客户端窗口的负载与此问题无关。如果您对该问题的其他答案是错误的,请编辑该答案以合并此答案,而不是将其作为新答案添加。请将两个答案合并为一个,并删除另一个。