Selenium 网格控制台不会为以编程方式启动的 Selenium Hub 打开

Selenium grid console doesn't open for Selenium Hub started programmatically

Mac OS 塞拉利昂 (10.12.5) 当我从命令行启动具有集线器角色的硒服务器时,如下所示

 java -jar selenium-server-standalone-3.4.0.jar -role hub

使用 url http://localhost:4444/grid/console 打开网格控制台后,几秒钟内显示信息。

但同样的 url 要么不加载,要么加载时间很长,当我使用 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 提出新问题。

我将合并我目前分享的所有内容,作为 this Google forum thread 的一部分,它也与 OP 进行了相同的讨论。

  1. 在 Sierra OS 上,有一个已知问题,有时需要很长时间才能解析本地主机的 IP 地址。要解决这个问题,您需要将 hostname 命令的输出添加到 /etc/hosts 文件,然后尝试。有关详细信息,请参阅 SO post。
  2. 如果您在公司网络上并且在您和互联网之间有代理服务器,那么您可能必须尝试配置代理设置以绕过 localhost 或来自 Network Preferences > Advanced (Click "Advanced" button) > Proxies (tab) > Bypass proxy settings for these hosts & domains
  3. IP Address of your machine

完成上述两项操作后,您可以尝试使用下面提到的组合之一来启动和加载 Grid 控制台:

  1. 明确提供主机名 localhost(您的代码已经这样做了),然后通过 http://localhost:4444/grid/console(或)
  2. 加载网格控制台
  3. 重复步骤 (1),跳过主机名设置,并加载 hub.getUrl() 返回的 URL。

我的直觉是,您可能在提供的公司 MAC 并且配置了代理服务器。因此,当您打开浏览器并尝试加载控制台时 URL,流量首先被路由到尝试解析页面的代理服务器,但在花费很长时间后最终失败,因为您的代理不知道两者 localhost 也不是你机器的 IP address (我猜你最终使用的是一个可能没有暴露在外面的内部 IP 地址)

希望对您有所帮助!