首页 > 解决方案 > 如何为执行确定 IEDriver 位

问题描述

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

我的问题是,IE驱动程序位如何确定为64或32。操作系统位版本之间有什么关系吗?就像操作系统是 64 IE 也应该是 64 一样?

标签: seleniumselenium-webdriverselenium-iedriver

解决方案


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

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

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


推荐阅读