作为一组编码UI测试的一部分,单击一个菜单。但是,菜单(使用Javascript)无法加载菜单选项。 手动运行测试时,菜单工作正常。如果我在测试运行时刷新页面(或重新启动浏览器),则加载菜单选项。
但更奇怪的是,这只发生在远程测试环境中。当我在自己的机器上本地运行测试时,即使Coded UI测试正在执行测试,菜单也能正常工作。
对我来说,为什么菜单无法加载完全没有意义。编码的UI测试是否可以阻止Javascript执行(加载菜单选项)?但是为什么刷新页面时它会起作用?
比较我自己的环境和测试环境 - 我看不出任何差异。我正在测试完全相同的Web应用程序(URL指向同一个Web服务器)。它是相同版本的Internet Explorer,所有设置都是相同的,我可以看到。同样的操作系统(Windows 7)。
有什么想法吗?
有一点需要注意的是,在IE7文档模式下测试工作正常 - 尽管这里的Javascript行为可能有所不同。目前,我已经在IE9文档模式下针对Web应用程序运行测试。将文档模式更改为Quirks模式也允许测试在某些情况下有效,但仅适用于少数测试。
答案 0 :(得分:1)
我发现原因是我在IE9兼容模式和IE9文档模式下录制了测试。使用VS2010的动作录制不支持IE9文档模式。
但是,即使在远程环境的测试回放期间将文档模式切换到IE8文档模式,浏览器对话框也会失败。
因此,这个问题没有真正的解决方案。
此外,由于这个原因,我认为微软声称编码的UI测试与IE9兼容(即使使用VS2010 SP1)也是如此。
因此,在我可以测试任何具有浏览器对话框或JavaScript菜单的网页之前,我别无选择,只能等到VS2012编码的UI测试工具(据称提供对IE9的完全支持)。
答案 1 :(得分:0)
我遇到了类似的问题 - 当测试代理运行的Coded UI测试试图操作它时,我的页面上的一些高级javascript会失败(VS2010,IE9标准)。
当切换到兼容模式(IE9 compat / IE7 doc模式)时,我们遇到了一个不同的问题 - 控件的innertext发生了显着变化,这打破了我们的搜索/过滤器属性。
更新了这些属性,测试现在可以在VM上的兼容模式下正常工作,或者在我的机器上的IE9标准中正常工作。