【问题标题】:enablePassThrough not available for selenium server 3.9.1enablePassThrough 不适用于 selenium 服务器 3.9.1
【发布时间】:2026-01-05 08:35:01
【问题描述】:

我使用 selenium server 3.7.1 进行测试设置,使用以下命令:

java -jar selenium-server-standalone-3.7.1.jar -enablePassThrough false

但尝试更新到 3.9.1 时,出现错误:

Exception in thread "main" com.beust.jcommander.ParameterException:
Was passed main parameter '-enablePassThrough' but no main parameter
was defined in your arg class

意思是enablePassThrough在最新版的selenium中不可用?为什么?还有什么其他选项或设置可用?

【问题讨论】:

    标签: java selenium selenium-webdriver webdriver selenium-grid


    【解决方案1】:

    enablePassThrough

    enablePassThrough 模式在Selenium Client v3.5.0 中首次引入。 enablePassThrough 允许从测试的 RemoteWebDriver 通过 Grid Hub 连接到 Grid 节点,再连接到 DriverService,然后连接到浏览器以使用相同的 WebDriver 协议(Json Wire 协议或 W3C一)端到端没有翻译。

    enablePassThrough 模式可以通过使用参数 -enablePassThrough false 启动独立服务器或网格节点来禁用

    随着Selenium Client v3.9.0 的发布和可用性,所有HTTP 通信 都切换到OkHttp。虽然您仍然可以通过将webdriver.http.factory 系统属性设置为apache 将版本更改回Apache HttpClient。

    同时不再支持服务器的passthrough模式

    【讨论】:

    • 感谢您的回复。您知道让 3.9.x 与 geckodriver 一起使用的任何说明吗?
    • @OlleHärstedt 我在 3.8.1 二进制文件的工作中处于低谷。我将很快切换到 v3.9.x。发行说明没有说明任何重大问题。如果您遇到任何具体问题,请使用确切的手动步骤提出问题,我们一定会为您提供帮助。
    • “系统属性”是 Java 特有的吗?我正在使用 PHP 进行测试。
    • 在转到 3.9 后收到相同的错误消息,我之前在 3.1 上。但是我根本没有指定 -enablepasssthrough 或 -role arg。有人可以解释这些参数的作用吗?我正在使用驱动程序路径和 -host 172.22.0.2 -port 4444 启动服务器。
    • @ConradB 让我们在Selenium Chat Room讨论这个问题