如何在集线器中注册节点后启动远程webdriver?

时间:2016-05-03 14:22:25

标签: java selenium selenium-webdriver selenium-grid2

我正在尝试启动remoteWebdriver,因为我已经逐步创建了一个集线器,然后我在其上添加了一个节点。这很好。我执行时的问题:

Thread.currentThread().join();

程序停止执行,如果我删除此行,我会收到错误。

try{
      String strIP = "localhost";

        GridHubConfiguration config = new GridHubConfiguration();
        config.setTimeout(30000000);
        config.setPort(4444);
        config.setHost(strIP);

        Hub hub = new Hub(config);
        hub.start();
        RegistrationRequest req = new RegistrationRequest();
        req.setRole(GridRole.NODE);
        Map<String, Object> nodeConfiguration = new HashMap<>();
        nodeConfiguration.put(RegistrationRequest.PROXY_CLASS, DefaultRemoteProxy.class.getName());

        nodeConfiguration.put(RegistrationRequest.MAX_SESSION, 5);
        nodeConfiguration.put(RegistrationRequest.PORT, 5555);
        nodeConfiguration.put(RegistrationRequest.HOST, 4444);
        nodeConfiguration.put(RegistrationRequest.AUTO_REGISTER, true);
        nodeConfiguration.put(RegistrationRequest.REGISTER_CYCLE, 5000);
        nodeConfiguration.put(RegistrationRequest.HUB_HOST, "localhost");
        nodeConfiguration.put(RegistrationRequest.HUB_PORT, 4444);
        nodeConfiguration.put("remoteHost", "http://" + strIP + ":5555");
        nodeConfiguration.put("url", "http://" + strIP + ":5555");

        nodeConfiguration.put("role", "node");
        nodeConfiguration.put("hub", "http://localhost:4444/grid/register");
        URL remoteURL = new URL("http://" + strIP + ":5555");
        nodeConfiguration.put(RegistrationRequest.REMOTE_HOST, remoteURL.toExternalForm());

        req.setConfiguration(nodeConfiguration);
        DesiredCapabilities capabilities2 = DesiredCapabilities.chrome();
        capabilities2.setCapability("browserName", "chrome");
        capabilities2.setCapability("platform", "WINDOWS");
        capabilities2.setCapability("ensureCleanSession", "true");
        capabilities2.setCapability("maxInstances", 5);
        req.addDesiredCapability(capabilities2);
        SelfRegisteringRemote remote = new SelfRegisteringRemote(req);
        remote.setRemoteServer(new SeleniumServer(req.getConfiguration()));
        remote.startRemoteServer();
        remote.startRegistrationProcess();

            WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/register"),DesiredCapabilities.chrome());

        Thread.currentThread().join();

              String URL="http://localhost:4444/wd/hub";

        WebDriver driver = new RemoteWebDriver(new URL(URL),DesiredCapabilities.chrome());
        driver.get("https://www.youtube.com");  

    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

0 个答案:

没有答案