首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Selenium网格控制台没有为以编程方式启动的Selenium集线器打开

Selenium网格控制台没有为以编程方式启动的Selenium集线器打开
EN

Stack Overflow用户
提问于 2017-07-24 11:39:10
回答 1查看 2.5K关注 0票数 0

当我从命令行使用hub角色启动selenium服务器时,MacOS塞拉利昂( 10.12.5 )如下所示

代码语言:javascript
复制
 java -jar selenium-server-standalone-3.4.0.jar -role hub

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

但是当我使用java程序启动hub时,相同的url要么不加载,要么需要很长时间才能加载,如下所示

代码语言:javascript
复制
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的解决方案,只使用Eclipse4.6.0,而不是IDEA Community 2017.2,我将对IDEA提出新的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-25 02:45:43

我将整合我共享的所有内容,作为这个Google论坛的帖子的一部分,它也与OP进行了相同的讨论。

  1. 在塞拉利昂操作系统上,有一个已知的问题,有时需要很长时间才能解决本地主机的IP地址。为了解决这个问题,您需要将hostname命令的输出添加到/etc/hosts文件中,然后尝试。有关更多细节,请参见
  2. 如果您在一个公司网络上,并且有一个代理服务器在您和internet之间,那么您可能必须尝试通过传递通信量来配置代理设置,这些流量是用于localhost或来自Network Preferences > Advanced (Click "Advanced" button) > Proxies (tab) > Bypass proxy settings for these hosts & domainsIP Address of your machine的。

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

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

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

希望这能帮上忙!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45279669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档