Selenium网格控制台无法以编程方式启动Selenium Hub

时间:2017-07-24 11:39:10

标签: selenium selenium-grid

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的新问题此

1 个答案:

答案 0 :(得分:0)

我将巩固迄今为止我所分享的所有 this Google forum thread 的一部分,它也与OP进行了相同的讨论。

  1. 在Sierra OS上,有一个已知问题,有时需要很长时间来解析localhost的IP地址。为了解决这个问题,您需要将sudo apt-get remove virtualbox-guest-utils命令的输出添加到sudo apt-get install virtualbox文件中,然后尝试。有关详细信息,请参阅this SO帖子。
  2. 如果您位于CORPORATE网络并且您和互联网之间有代理服务器,那么您可能必须通过传递适用于hostname或{的流量来尝试配置代理设置。来自/etc/hosts
  3. 的{1}}

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

    1. 明确提供主机名localhost(您的代码已在执行),然后通过IP Address of your machine(或)
    2. 加载网格控制台
    3. 跳过主机名的设置,并加载Network Preferences > Advanced (Click "Advanced" button) > Proxies (tab) > Bypass proxy settings for these hosts & domains返回的网址,重复步骤(1)。
    4. 我的预感是,您可能在公司提供的MAC上,并且配置了代理服务器。因此,当您打开浏览器并尝试加载控制台URL时,流量首先被路由到代理服务器,该服务器试图解析该页面并在最后一段时间后失败,因为您的代理既不知道localhost也不知道机器的http://localhost:4444/grid/console(我猜你最终使用的内部IP地址可能没有暴露在外面)

      希望有所帮助!