如何为执行确定 IEDriver 位

How IEDriver bit is determined for the execution

我们有 2 台机器,我们在其中 运行 IE selenium 测试脚本。在两台机器中都配置了 32 位 IE。在一台机器上打字速度更快,而在另一台机器上它打出每个单词。所以在那台机器上,我将 IEDriver 位版本更改为 64,它按预期工作。

我的问题是,IE驱动的位是64位还是32位是怎么判断的。OS位版本有什么关系吗??比如如果 OS 是 64 IE 也应该是 64 ?

如果您使用 IEDriverServer.exe 32 位执行速度会更快,如果您使用 64 位执行速度会较慢,与您的 OS 无关。所以,使用 32 位的速度更快。我尝试过 32 位和 64 位,相信我 64 位太慢了。

来自https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver#internet-explorer-driver

The driver supports running 32-bit and 64-bit versions of the browser. The choice of how to determine which "bit-ness" to use in launching the browser depends on which version of the IEDriverServer.exe is launched. If the 32-bit version of IEDriverServer.exe is launched, the 32-bit version of IE will be launched. Similarly, if the 64-bit version of IEDriverServer.exe is launched, the 64-bit version of IE will be launched.

AFAIK,您可以 运行 64 位 Windows 上的 32 位或 64 位驱动程序;我希望您只能 运行 32 位 Windows.

上的 32 位驱动程序

有趣的是,32 位驱动程序比其 64 位驱动程序被认为 "faster"。但是——鉴于感知速度受到被测系统 CPU/RAM--that 的影响,需要进行基准测试才能确定。也就是说,我之前在 64 位系统上使用过 32 位版本,因为它确实显得更快(尤其是 WRT 到文本输入)。

驱动程序的“位数”必须与浏览器的“位数”匹配是有技术原因的,主要是因为驱动程序默认使用 Windows 挂钩程序来处理击键。这些技术原因在驱动程序作者(我)几年前写的 a blog post 中有所概述。棘手的一点是知道浏览器实际上是 32 位还是 64 位。

您知道,IE 在浏览时使用多个进程,特别是代理进程(处理浏览器的外框架)和内容进程(通常每个选项卡一个,实际呈现内容)。但是,从 IE10 开始,挑战在于这些进程(代理和内容进程)可以具有 不同的 位数。事实上,在 64 位 Windows 上,这是默认设置,其中代理进程为 64 位,内容进程为 32 位。发送击键等元素交互发生在内容过程中,因此这是驱动程序必须匹配的。

这意味着最常见的情况是应该使用 32 位 IE 驱动程序,即使在 64 位 Windows 上也是如此。必须指出的是,在某些情况下可以获得 64 位内容进程(通常基于增强保护模式),但这些只是极少数情况。