如何使用JSON配置文件单命令启动Selenium-Server Standalone 3.6.0
解决Selenium Standalone模式单命令启动(带自定义JAR和JSON配置)
我来帮你搞定这个问题!要在Selenium Server 3.6.0中以standalone角色同时启动hub和node,并且加载你的自定义代理JAR、使用JSON配置文件,完全不需要分开执行两条命令,一条命令就能实现。
核心命令
Linux/macOS系统
java -cp my_proxy.jar:selenium-server-standalone-3.6.0.jar org.openqa.grid.selenium.GridLauncherV3 -role standalone -hubConfig configHub.json -nodeConfig configNode.json
Windows系统
注意类路径分隔符用分号(;)代替冒号:
java -cp my_proxy.jar;selenium-server-standalone-3.6.0.jar org.openqa.grid.selenium.GridLauncherV3 -role standalone -hubConfig configHub.json -nodeConfig configNode.json
参数说明
-role standalone:这个参数是关键,它会让Selenium Server同时承担hub和node的职责,无需单独启动两个进程-cp:指定类路径,把你的自定义代理JAR放在前面,确保Selenium优先加载你的自定义组件(比如额外servlet)-hubConfig:指定hub的JSON配置文件,你之前配置的额外servlet就写在这里-nodeConfig:指定node的JSON配置文件,包含浏览器实例、代理设置等节点相关配置
配置文件示例
Hub配置文件(configHub.json)
这里可以定义你需要的额外servlet:
{ "servlets": ["com.yourteam.YourCustomServlet"], "port": 4444, "servletsMapping": { "/custom-endpoint/*": "com.yourteam.YourCustomServlet" }, "newSessionWaitTimeout": -1 }
Node配置文件(configNode.json)
可以配置节点支持的浏览器、代理类等:
{ "capabilities": [ { "browserName": "chrome", "maxInstances": 3, "platform": "LINUX" }, { "browserName": "firefox", "maxInstances": 2, "platform": "LINUX" } ], "proxy": "com.yourteam.YourCustomProxy", "maxSession": 5 }
注意事项
- 确保你的自定义JAR中的类全路径和配置文件里的一致,否则Selenium会找不到对应的组件
- 如果JSON配置文件里已经写了
role字段,命令行的-role standalone会覆盖它,所以不用在JSON里重复设置角色 - 启动前检查端口(默认4444)是否被占用,避免启动失败
内容的提问来源于stack exchange,提问作者tahayk
相关产品推荐
相关产品推荐

