【问题标题】:Selenium: Set the node thats executing by ip (or something else)Selenium:设置通过 ip(或其他)执行的节点
【发布时间】:2017-12-06 12:50:34
【问题描述】:

我在服务器上使用带有集线器的 Selenium Grid。 为了更容易调试,我想在我的特定电脑上而不是在其他节点上执行测试。 (所有节点始终在线) 有没有类似ip能力的东西? (所有节点运行相同的浏览器和平台等) 否则我必须做一个 Grid-Execution.java 和一个 Local-Execution.java? 如果您有其他想法如何做到这一点,请告诉我!问候阿诺

【问题讨论】:

  • 使用selenium-server-standalone 在您的计算机上创建本地网格。使您的计算机成为具有 3-4 个浏览器实例的集线器和节点。然后使用某种参数为集线器传递 IP 以在远程或本地集线器上运行测试。

标签: java selenium grid ip desiredcapabilities


【解决方案1】:

在我们的框架中,有一个系统属性“IsLocal”,它总是正确的。如果我们想在网格上执行,我们将其设置为 false 并传递额外的参数,如集线器 ip 和端口号。

另外,这个值我们可以从maven命令行传递,如果我们从IDE执行,则值为null,如果为null,它将采用默认值,即true。所以它总是在本地执行。如果我们需要在网格上测试它,我们从 maven 或命令行传递 IsLocal 系统值。

在我们的驱动工厂启动浏览器方法。如果它是真的,我们总是检查这个属性,我们使用本地驱动程序启动浏览器,否则使用远程 Web 驱动程序。类似于下面的代码。

boolean IsLocal=true;
if(System.getProperty("IsLocal")!=null){
      IsLocal=System.getProperty("IsLocal");
}

if(IsLocal){
    driver=new FirefoxDriver();
}
else{
    driver= new RemoteWebDriver(HUBURL, DesiredCap);
}

【讨论】:

  • 感谢 Murthi,这工作得很好。已接受答案!
猜你喜欢
  • 2017-01-07
  • 1970-01-01
  • 2020-07-30
  • 2021-06-01
  • 1970-01-01
  • 2018-08-04
  • 2014-04-10
  • 2021-01-17
  • 1970-01-01
相关资源
最近更新 更多