Mac OS Sierra(10.12.5) 当我从命令行启动具有集线器角色的selenium服务器时,如下所示
java -jar selenium-server-standalone-3.4.0.jar -role hub
在这个打开的网格控制台与网址http://localhost:4444/grid/console之后,在几秒钟内显示信息。
但是,当我使用java程序启动集线器时,同样的网址要么加载要么加载时间不长,
Hub hub = null;
public void startSeleniumHub(){
try{
String strIP = "localhost";
GridHubConfiguration config = new GridHubConfiguration();
config.host = strIP;
config.port = 4444;
hub = new Hub(config);
hub.start();
if(isSeleniumHubRunning(10)){
System.out.println("Selenium Grid is Running");
}else{
System.err.println("*** Selenium Grid is down");
}
}catch(Exception e){
e.printStackTrace();
}
}
public boolean isSeleniumHubRunning(int timeOut){
int count = 0 ;
while(count < timeOut){
try{
Thread.sleep(1000);
URL u = new URL ( "http://localhost:4444/grid/console");
HttpURLConnection huc = ( HttpURLConnection ) u.openConnection ();
huc.setRequestMethod ("GET"); //OR huc.setRequestMethod ("HEAD");
huc.connect () ;
int code = huc.getResponseCode() ;
System.out.println(code);
return true;
}catch(Exception e){
System.err.println("Selenium Grid is still down.....");
count++;
//return false;
}
}
System.err.println("Selenium Grid failed to start up even after " + timeOut + " seconds");
return false;
}
我尝试寻找根本原因但未找到任何答案。
提前致谢。
编辑:krishnan-mahadevan的解决方案仅适用于Eclipse 4.6.0 和不适用于IDEA Community Edition 2017.2 我将打开IDEA关于IDEA的新问题此答案 0 :(得分:0)
我将巩固迄今为止我所分享的所有 this Google forum thread 的一部分,它也与OP进行了相同的讨论。
sudo apt-get remove virtualbox-guest-utils
命令的输出添加到sudo apt-get install virtualbox
文件中,然后尝试。有关详细信息,请参阅this SO帖子。hostname
或{的流量来尝试配置代理设置。来自/etc/hosts
完成上述两项操作后,您可以尝试以下提到的组合之一来启动和加载Grid控制台:
localhost
(您的代码已在执行),然后通过IP Address of your machine
(或)Network Preferences > Advanced (Click "Advanced" button) > Proxies (tab) > Bypass proxy settings for these hosts & domains
返回的网址,重复步骤(1)。我的预感是,您可能在公司提供的MAC上,并且配置了代理服务器。因此,当您打开浏览器并尝试加载控制台URL时,流量首先被路由到代理服务器,该服务器试图解析该页面并在最后一段时间后失败,因为您的代理既不知道localhost
也不知道机器的http://localhost:4444/grid/console
(我猜你最终使用的内部IP地址可能没有暴露在外面)
希望有所帮助!