如何确定IEDriver位以执行

时间:2019-10-15 13:56:22

标签: selenium selenium-webdriver selenium-iedriver

我们有2台运行IE硒测试脚本的计算机。在这两种机器中,均配置了IE 32位。在一台机器上,它键入速度更快,而在另一台机器上,它键入每个单词。因此,在那台机器上,我将IEDriver位版本更改为64,并且按预期方式工作。

我的问题是,IE驱动程序位如何确定为64或32。OS位版本之间是否有任何关系?就像OS是64,IE也应该是64?

3 个答案:

答案 0 :(得分:0)

如果使用IEDriverServer.exe,则与操作系统无关,32位执行速度将更快,而64位执行速度将更慢。因此,使用32位作为其更快的速度。我尝试使用32位和64位,相信我64位太慢了。

答案 1 :(得分:0)

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

  

该驱动程序支持运行32位和64位版本的浏览器。   如何确定在发射中使用哪个“位”的选择   浏览器取决于IEDriverServer.exe的版本   推出了。如果启动了32位版本的IEDriverServer.exe,则   将会启动32位版本的IE。同样,如果是64位   IEDriverServer.exe版本启动,即IE的64位版本   将启动。

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

有趣的是,32位驱动程序被认为比64位驱动程序“更快”。但是-鉴于感知的速度受被测系统的CPU / RAM的影响-必须对其进行基准测试以确定。话虽如此,我以前在64位系统上使用了32位版本,因为它确实显示得更快(尤其是从WRT到文本输入)。

答案 2 :(得分:0)

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

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

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