DesiredCapabilities
它们被包装到特定驱动程序的各种类Options
中。
有一个InternetExplorerOptions
类允许您指定启动 IE 的额外选项,其中一种方法是AddAdditionalCapability
允许您添加您希望请求的任何功能。这意味着选项包含然后传递给驱动程序的功能。
至于你的具体问题,不,这是不可能的。这也不是 Selenium 或 IEDriverServer 的限制,而是 IE 本身。如果没有重大的黑客攻击,你不可能在一台机器上同时拥有多个版本的 IE。换个角度想一想——每当你升级 IE 时,它都会卸载以前的版本。
它将启动您当前安装的 IE。其他任何事情都是完全错误的,同样,它也是错误的,因为您不能在一台 Windows 机器上同时拥有多个版本的 IE。
解决这个问题的唯一方法是为每个版本配备单独的机器或虚拟机,或者投资像 SauceLabs 这样的自动化云测试框架。
编辑
您还提到您希望使用 IE8 的兼容模式,或者想知道在使用 IEDriver 时这是否可行。
那又是完全不同的东西(双关语)。
IE 中的兼容性引擎不是,该浏览器引擎的真实表示。因此,您必须认为您正在运行具有 IE7 兼容模式的 IE9,因此期望 IE7 完整——即使微软也不会这样说,它是用于临时测试的——不能依赖它. 因此,即使你能做到这一点,它也不是一个可靠的测试,哪怕是最轻微的。
问题仍然不是 Selenium 问题。IEDriver 将调用已安装的任何 IE,此时由 IE 设置 Selenium 可以连接的会话。
值得一提的是,您可以与 IEDriver 一起使用的所有兼容性选项都不会影响 IE 本身,更多的是会话的创建以及 Selenium 与其交互的方式。
此时,Selenium 举起双手,几乎无能为力。
考虑到这一点,Selenium 根本无法强制 IE 使用某种浏览器模式。根本没有 API 可以做到这一点,因此,做到这一点并不容易。
这里的解决方法是首先强制 IE 在兼容性视图中查看。您的选择非常有限:
强制 IE9 进入浏览器兼容性视图