Selenium:设置由 ip(或其他东西)执行的节点

Selenium: Set the node thats executing by ip (or something else)

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

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

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

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

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

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