通过 Selenium 3.0.0 beta3 启动集线器时无法定义 maxInstances

Unable to define maxInstances when launching hub via Selenium 3.0.0 beta3

我一直在使用 selenium-server-standalone-2.53.0.jar,最近尝试升级到 3.0.0-beta3 版本。

我正在尝试通过以下命令使用 maxInstances 参数启动集线器:

java -jar %~dp0DriverRepo\selenium-server-standalone-3.0.0-beta3.jar -role hub -port 5555 -maxInstances 9

这在 2.53.0 中有效,但在 3.0.0-beta3 中我遇到了以下异常:

Exception in thread "main" com.beust.jcommander.ParameterException: Unknown option: -maxInstances
    at com.beust.jcommander.JCommander.parseValues(JCommander.java:742)
    at com.beust.jcommander.JCommander.parse(JCommander.java:282)
    at com.beust.jcommander.JCommander.parse(JCommander.java:265)
    at com.beust.jcommander.JCommander.<init>(JCommander.java:210)
    at org.openqa.grid.selenium.GridLauncherV3.setConfiguration(GridLauncherV3.java:224)
    at org.openqa.grid.selenium.GridLauncherV3.buildLauncher(GridLauncherV3.java:138)
    at org.openqa.grid.selenium.GridLauncherV3.main(GridLauncherV3.java:67)

显然 maxInstances 不再是一个有效的参数。我已经搜索了有关使用 maxInstances 参数可能进行的任何更改的文档,但我没有运气。有没有其他人 运行 关注这个问题,或者有没有人知道以类似的方式在 3.0.0-beta3 中启动集线器的正确方法?

我不记得曾经使用过一个名为 maxInstances 的参数。我认为早些时候没有对无效命令行参数进行验证,但是对于 Selenium 3,他们可能启用了它。

下面是一个例子,说明为什么我觉得我的理论是正确的

Selenium 2.53.1 输出,其中我提供了一个名为 krishnan 的无效参数 selenium-server -role hub -krishnan 100 22:28:37.762 INFO - Launching Selenium Grid hub 2016-09-26 22:28:38.366:INFO::main: Logging initialized @758ms 22:28:38.378 INFO - Will listen on 4444 22:28:38.421 INFO - Will listen on 4444 2016-09-26 22:28:38.424:INFO:osjs.Server:main: jetty-9.2.z-SNAPSHOT 2016-09-26 22:28:38.452:INFO:osjsh.ContextHandler:main: Started o.s.j.s.ServletContextHandler@32eebfca{/,null,AVAILABLE} 2016-09-26 22:28:38.479:INFO:osjs.ServerConnector:main: Started ServerConnector@6ec8211c{HTTP/1.1}{0.0.0.0:4444}

下面是 Selenium 3 beta 版本对同一命令行的行为方式。

java -jar selenium-server-standalone-3.0.0-beta2.jar -role hub -krishnan 100 Exception in thread "main" com.beust.jcommander.ParameterException: Unknown option: -krishnan at com.beust.jcommander.JCommander.parseValues(JCommander.java:742) at com.beust.jcommander.JCommander.parse(JCommander.java:282) at com.beust.jcommander.JCommander.parse(JCommander.java:265) at com.beust.jcommander.JCommander.<init>(JCommander.java:210) at org.openqa.grid.selenium.GridLauncherV3.setConfiguration(GridLauncherV3.java:216) at org.openqa.grid.selenium.GridLauncherV3.buildLauncher(GridLauncherV3.java:130) at org.openqa.grid.selenium.GridLauncherV3.main(GridLauncherV3.java:67)

Selenium 从来没有任何名为 maxInstances 的参数。它只有一个叫做 maxSession 的东西。

maxInstances 的唯一用法是在节点配置文件中,如 here 所示,该文件通过 -nodeConfig 参数传递给 Selenium 节点。这表示可以在节点中打开的每种浏览器风格的并发浏览器实例数。