【发布时间】:2018-05-03 00:09:48
【问题描述】:
我必须创建一个 java 应用程序来启动一个节点并将其连接到集线器。到目前为止,当集线器和节点在同一台计算机上时,我已经能够这样做,但是一旦我尝试在另一台机器集线器上连接,注册过程就会永远挂起。
我尝试了不同的方法。只需在代码中调用我的 bat 文件函数。
String command = "java -jar selenium-server-standalone-2.26.0.jar -role node -hub http://192.168.0.11:4444/grid/register -port 4449 -Dwebdriver.chrome.driver=data\\driver\\chromedriver.exe -Dwebdriver.ie.driver=data\\driver\\IEDriverServer.exe -nodeConfig data\\configurations.json";
try
{
pr = Runtime.getRuntime().exec(command);
}
catch(Exception e)
{
e.printStackTrace();
}
从 bat 文件调用该命令时有效,但在代码中它仅在节点和集线器位于同一台计算机上时有效。
我也尝试使用 RegistrationRequest。
RegistrationRequest req = new RegistrationRequest();
req.setRole(GridRole.NODE);
Map<String, Object> nodeConfiguration = new HashMap<String,
Object>();
nodeConfiguration.put(RegistrationRequest.AUTO_REGISTER, true);
nodeConfiguration.put(RegistrationRequest.HUB_HOST, "192.168.100.66");
nodeConfiguration.put(RegistrationRequest.HUB_PORT, 4444);
nodeConfiguration.put(RegistrationRequest.PORT, 5555);
URL remoteURL = new URL("http://" + "192.168.100.66" + ":" + 5555);
nodeConfiguration.put(RegistrationRequest.PROXY_CLASS, "org.openqa.grid.selenium.proxy.DefaultRemoteProxy");
nodeConfiguration.put(RegistrationRequest.MAX_SESSION, 1);
nodeConfiguration.put(RegistrationRequest.CLEAN_UP_CYCLE, 2000);
nodeConfiguration.put(RegistrationRequest.REMOTE_HOST, remoteURL);
nodeConfiguration.put(RegistrationRequest.MAX_INSTANCES, 1);
req.setConfiguration(nodeConfiguration);
remote = new SelfRegisteringRemote(req);
remote.startRemoteServer();
remote.startRegistrationProcess();
同样的结果,当我尝试在另一个计算机集线器上运行时,它会进入注册过程。 信息 - 将节点注册到集线器:http://192.168.100.66:4444/grid/register
知道为什么吗?或者怎么做。
【问题讨论】:
-
我发现了我的问题,这很容易解决。在我的代码中,我有 URL remoteURL = new URL("http://" + "192.168.100.66" + ":" + 5555);我只需要用我的本地 IP 地址而不是集线器 IP 地址替换 IP 地址,就可以了。这很奇怪,因为我很确定我是从网上某处获取这段代码的,他有一个 ip 变量,b 也是一样
标签: selenium grid registration nodes