我们正在与Selenium运行一个项目。由于该项目使用Cold Fusion,因此需要IE而不是Chrome。
我有一个已经在该网站上使用IE运行了几个月的测试,并且可以正常运行。我们有一台装有IE的新计算机,并尝试运行它,并收到一条错误消息,指出它需要IE 5或更高版本。哦。
我决定看看这台新机器的版本。桌面上的图标和“关于Internet Explorer”都显示了11.something(11远远高于5),但我们仍然收到此消息。
我怀疑IE的安装不完整或不正确?我想知道是否有人知道我可以访问的网站,该网站会告诉我我认为正在运行的IE版本。或者,如果不太困难,我可以自己写一些东西,如果可以将其作为文件打开。正如我所说,“关于Internet Explorer”认为它是11。我想看看应用程序也认为它是11。尽管他们必须能够弄清楚(或Cold Fusion可以),但我无法真正联系我要问他们的网站的开发人员。
答案 0 :(得分:8)
由于该项目使用Cold Fusion,因此需要IE而不是Chrome。
ColdFusion只是生成HTML和JavaScript,它本身并不关心您使用的是哪种浏览器。但是,呈现的JS是另一回事。如果它是CF的旧版本(<版本10),并且应用程序使用CF的内置UI小部件(例如cfwindow
或cfpod
),则CF正在创建的JavaScript可能正在检查Document Object Model (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。
充其量,您也许可以在Compatibility Mode中运行MSIE,以完成Selenium脚本。
在最坏的情况下,您将需要重构CF代码以不再使用这些UI控件,而应将它们替换为jQueryUI之类的现代而简单的东西。
答案 1 :(得分:0)
只需添加:
对于您的模板,它将为您提供所需的所有浏览器信息。
然后转到:
https://developers.whatismybrowser.com/useragents/explore/operating_system_name/windows/
并将输出与相关的用户代理字符串引用进行比较...
答案 2 :(得分:0)
要检测IE版本(v6-v7-v8-v9-v10-v11):
if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {
// MSIE
}