RemoteWebDriver - 启动 32 位 Internet Explorer

RemoteWebDriver - Launching 32 bit Internet Explorer

我有一个适用于 Chrome、Firefox 和 Internet Explorer 64 位的 Selenium 测试设置。 Selenium-Server-Standalone 用于此设置。 64 位 IEDriverServer 存在一些严重的性能问题,即使在修复 SendKeys 问题(这不是这里的问题)后也是如此。使用 Chrome 需要 30 秒的序列在 IE 中需要 11 分钟(尝试读取 IWebElement 属性 已经需要大约 5 秒)。我正在尝试将 32 位转换为 运行,这在我之前的工作中 运行 很顺利。

但是,我在尝试启动 Internet Explorer 32 位时遇到问题。在启动浏览器之前,一切正常:独立版是 运行ning.

Chrome 启动时没有问题(由于客户端而被审查)。

Firefox 也没有问题。

和 Internet Explorer 64 位:速度慢,但至少可以启动。

问题

当我尝试使用 Internet Explorer 32 位驱动程序时,独立版本身可以正常启动。在代码中调用它之后,独立程序会注册调用并且不会指示任何问题。然而,浏览器本身永远不会启动:最终 Visual Studio 只是给出了一个超时。

我发现了很多看起来相似的帖子,但是 none 给定的解决方案有所帮助。手动启动 IE 32 位时,一切正常。事件查看器显示没有错误。有没有人知道问题可能是什么,或者至少知道如何获取更多信息的方法?

提前致谢!

我今天偶然发现了答案。我启用了以下设置:

/* Internet Explorer */
var ieo = new InternetExplorerOptions
{
    RequireWindowFocus = true,                  // Required for quick typing when using sendkeys
    ForceCreateProcessApi = true,               // Required for IE private mode
    BrowserCommandLineArguments = "-private",   // Required for IE private mode
};

ForceCreateProcessApi 导致 32 位驱动程序失败。当我禁用它时,驱动程序突然毫无问题地启动了。 很遗憾,这并没有解决我的性能问题,但至少我可以将其从可能的解决方案列表中划掉。