selenium - 如何为执行确定 IEDriver 位
问题描述
我们有 2 台机器运行 IE selenium 测试脚本。在这两个机器上都配置了 IE 32 位。在一台机器上,它打字速度更快,而在另一台机器上,它键入每个单词。因此,在那台机器上,我将 IEDriver 位版本更改为 64,它按预期工作。
我的问题是,IE驱动程序位如何确定为64或32。操作系统位版本之间有什么关系吗?就像操作系统是 64 IE 也应该是 64 一样?
解决方案
驱动程序的“位数”必须与浏览器的“位数”匹配是有技术原因的,主要是因为驱动程序默认使用 Windows 挂钩程序来处理击键。这些技术原因在驱动程序作者(我)几年前写的博客文章中进行了概述。棘手的一点是要知道浏览器实际上是 32 位还是 64 位。
您会看到,IE 在浏览时使用多个进程,特别是代理进程(处理浏览器的外框)和内容进程(通常每个选项卡一个,它实际呈现内容)。然而,从 IE10 开始,挑战在于这些进程(代理和内容进程)可以有不同的位数。事实上,在 64 位 Windows 上,这是默认设置,其中代理进程是 64 位,内容进程是 32 位。诸如发送击键之类的元素交互发生在内容过程中,因此这是驱动程序必须匹配的。
这意味着最常见的情况是应该使用 32 位 IE 驱动程序,即使在 64 位 Windows 上也是如此。必须指出的是,在某些情况下可以获得 64 位内容进程(通常基于增强保护模式),但这些只是极少数情况。
推荐阅读
- mongodb - 带有 $in 和 arrayFilters 的 mongodb updateMany
- reactjs - 在 Web 应用程序中嵌入来自 Azure 日志分析工作空间的图表
- python - 在二维坐标数组上调用函数的最有效方法是什么?
- android - 在多模块应用程序中的所有模块上切换构建变体 - Android Studio
- sql - 存储过程中的动态 WHERE 子句
- matlab - Matlab使用fzero找到相交点
- java - 无法解决此错误:无法在 ("NAWFEL". "ORDO_DEP_UUSATEUR". "EMPLOI") 中插入 NULL
- image - 图像文件加密,应该在不破坏文件的情况下加密哪一部分
- python - compare two text files then update the specific values based on the matching first column. (python)
- vba - 在特定单词之前删除一行(仅当它为空时)