Java 如何以编程方式在同一selenium hub上运行2个或更多节点(无控制台)

Java 如何以编程方式在同一selenium hub上运行2个或更多节点(无控制台),java,selenium,selenium-webdriver,selenium-grid,Java,Selenium,Selenium Webdriver,Selenium Grid,我可以在selenium grid hub上运行1个节点 下面是我的代码片段 GridHubConfiguration config = new GridHubConfiguration() config.setHost("localhost") config.setTimeout(60000000) Hub hub = new Hub(config) hub.start() Registratio

我可以在selenium grid hub上运行1个节点

下面是我的代码片段

        GridHubConfiguration config = new GridHubConfiguration()
        config.setHost("localhost")
        config.setTimeout(60000000)
        Hub hub = new Hub(config)
        hub.start()

        RegistrationRequest req = new RegistrationRequest()
        req.setRole(GridRole.NODE)


        Map<String, Object> nodeConfiguration = new HashMap<String, Object>();

        nodeConfiguration.put(RegistrationRequest.PROXY_CLASS, "org.openqa.grid.selenium.proxy.DefaultRemoteProxy")
        nodeConfiguration.put(RegistrationRequest.MAX_SESSION, 25)
        nodeConfiguration.put(RegistrationRequest.PORT, 5555)
        nodeConfiguration.put(RegistrationRequest.HOST, hub.getHost())
        nodeConfiguration.put(RegistrationRequest.AUTO_REGISTER, true)
        nodeConfiguration.put(RegistrationRequest.REGISTER_CYCLE, 5000)
        nodeConfiguration.put(RegistrationRequest.HUB_HOST, hub.getHost())
        nodeConfiguration.put(RegistrationRequest.HUB_PORT, hub.getPort())
        URL remoteURL = new URL("http://" + hub.getHost() + ":" + 5555)
        nodeConfiguration.put(RegistrationRequest.REMOTE_HOST, remoteURL)

        req.setConfiguration(nodeConfiguration)

        DesiredCapabilities capabilities = DesiredCapabilities.chrome()
        capabilities.setCapability("browserName","chrome")
        capabilities.setCapability("maxInstances",25)
        capabilities.setCapability("seleniumProtocol","Selenium")

        req.setCapabilities([capabilities]);

        SelfRegisteringRemote remote = new SelfRegisteringRemote(req)
        remote.startRemoteServer()
        remote.startRegistrationProcess()
GridHubConfiguration config=new GridHubConfiguration()
config.setHost(“localhost”)
config.setTimeout(60000000)
集线器=新集线器(配置)
hub.start()
注册请求req=新注册请求()
请求setRole(GridRole.NODE)
Map nodeConfiguration=newhashmap();
nodeConfiguration.put(RegistrationRequest.PROXY_类,“org.openqa.grid.selenium.PROXY.DefaultRemoteProxy”)
nodeConfiguration.put(RegistrationRequest.MAX_会话,25)
nodeConfiguration.put(RegistrationRequest.PORT,5555)
nodeConfiguration.put(RegistrationRequest.HOST,hub.getHost())
nodeConfiguration.put(RegistrationRequest.AUTO_REGISTER,true)
nodeConfiguration.put(RegistrationRequest.REGISTER\u循环,5000)
nodeConfiguration.put(RegistrationRequest.HUB\u主机,HUB.getHost())
nodeConfiguration.put(RegistrationRequest.HUB\u PORT,HUB.getPort())
URL remoteURL=新URL(“http://”+hub.getHost()+“:”+5555)
nodeConfiguration.put(RegistrationRequest.REMOTE\u主机,remoteURL)
请求设置配置(节点配置)
DesiredCapabilities=DesiredCapabilities.chrome()
能力。设置能力(“浏览器名”、“浏览器名”)
setCapability(“maxInstances”,25)
能力。设置能力(“硒协议”,“硒”)
要求设置能力([能力]);
SelfRegisteringRemote=新的SelfRegisteringRemote(req)
remote.startRemoteServer()
remote.startRegistrationProcess()
我有三个问题

  • 正如您所看到的,我将MAX_SESSION和maxInstances设置为25,虽然我不能运行超过10个Chrome驱动程序实例,但可能是我做错了什么,或者可能是一个bug
  • 如何在同一selenium hub上以编程方式运行2个或更多节点(无控制台)
  • 如何在无头模式下运行web驱动程序?有一个非常有用的链接,但我无法找到如何为Selenium grid实现它

  • 我正在使用selenium-server-standalone-2.40.0.jar

    现在可以使用了吗?您正在设置Max Session,但还有一个名为Max Instances的设置。请阅读此处:他们的文档将告诉您实例和会话之间的区别。