首页 > 解决方案 > 确定IE的版本

问题描述

我们正在使用 Selenium 运行一个项目。由于这个项目使用 Cold Fusion,它需要 IE 而不是 Chrome。

我有一个测试,在这个站点上使用 IE 运行和执行了几个月。我们得到了一台装有 IE 的新机器并尝试运行它并收到一条错误消息,指出它需要 IE 5 或更高版本。哦。

我决定看看这台新机器有什么版本。桌面上的图标和关于 Internet Explorer 都显示 11.something(11 远高于 5)但我们仍然收到此消息。

我怀疑 IE 的安装可能不完整或不正确?我想知道是否有人知道我可以访问的网站,它会告诉我它认为我正在运行的 IE 版本。或者如果不是太难的话,如果我可以将它作为文件打开,我可以自己写一些东西。正如我所说,关于 Internet Explorer 认为它是 11。我想看看应用程序也认为它是什么。我无法真正联系我正在使用的网站的开发人员来询问他们,尽管他们必须能够弄清楚(或者 Cold Fusion 可以)。

标签: coldfusioninternet-explorer-11

解决方案


由于这个项目使用 Cold Fusion,它需要 IE 而不是 Chrome。

ColdFusion 只是生成 HTML 和 JavaScript,它本身并不关心您使用的是什么浏览器。然而,渲染的 JS 是另一回事。如果它是旧版本的 CF(< 版本 10)并且应用程序正在使用任何 CF 的内置 UI 小部件(如cfwindowor cfpod),那么 CF 创建的 JavaScript 可能正在检查文档对象模型 (DOM)中的某些内容,就像浏览器的User Agent String一样,在 MSIE 11 中不再存在或已更改。

默认情况下,Windows 8.1 上的 Internet Explorer 11 发送以下用户代理字符串:

Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko

更有可能的是,罪魁祸首是:

PS:还要注意IE11模式下,navigator.appName属性返回Netscape旧版本返回Microsoft Internet Explorer。新值匹配所有主要浏览器,包括 Safari、Chrome 和 Firefox。

充其量,您可能能够在兼容模式下运行 MSIE以完成您的 Selenium 脚本。

在最坏的情况下,您需要重构 CF 代码以不再使用这些 UI 控件,并将它们替换为像jQueryUI这样现代而简单的东西。


推荐阅读