The DesiredCapabilities
被包裹成各种Options
特定驱动程序的类。
有一个InternetExplorerOptions
类,它允许您指定启动 IE 的额外选项,其方法之一是AddAdditionalCapability
这将允许您添加任何您想要的功能request。这意味着options包含能力然后传递给driver.
至于你的具体问题,不,这是不可能的。这也不是 Selenium 或 IEDriverServer 的限制,而是 IE 本身的限制。你不能,没有majorhacks,一台机器上同时安装多个版本的 IE。从另一个角度考虑 - 每当您升级 IE 时,它都会卸载以前的版本。
它将启动您当前安装的 IE。其他的都是pure这是错误的,而且,这是错误的,因为您根本无法在一台 Windows 计算机上同时安装多个版本的 IE。
解决这个问题的唯一方法是为每个版本拥有单独的机器或虚拟机,或者投资像 SauceLabs 这样的自动化云测试框架。
edit
您还提到您希望使用 IE8 的兼容模式,或者想知道在使用 IEDriver 时这是否可行。
这又是完全不同的事情(双关语)。
IE中的兼容性引擎是not,该浏览器引擎的真实代表。因此,你必须认为你正在运行,比如说,具有 IE7 兼容模式的 IE9,因此期望 IE7 是完整的 - 它不会,即使微软这么说,它是用于临时测试 - 它不值得依赖。因此,即使你could如果这样做的话,即使从最轻微的角度来看,这也不是一个可靠的测试。
问题仍然不是 Selenium 的问题。 IEDriver 将调用安装的任何 IE,此时,由 IE 来设置 Selenium 可以连接的会话。
值得一提的是all您可以与 IEDriver 一起使用的兼容性选项不会影响 IE 本身,更不会影响会话的创建以及 Selenium 与其交互的方式。
此时,Selenium 举起双手,无能为力。
考虑到这一点,Selenium 根本无法强制 IE 使用某种浏览器模式。根本没有 API 可以做到这一点,因此,这并不容易做到。
这里的解决方法是首先强制 IE 在兼容性视图中查看。你的选择非常有限:
强制 IE9 进入浏览器兼容性视图 https://stackoverflow.com/questions/11519645/force-ie9-into-browser-compatibility-view