如何区分Selenium Grid 上的iOS 和OS X 节点?

How distinguish iOS and OS X nodes on Selenium Grid?

我有 Mac OS X 节点与 Safari 和 Appium iOS 节点。 他们都有 platform:MAC、browser:Safari 和 version:9。 网格未考虑移动平台功能 枚举中不存在平台 iOS。 我在 iOS 节点平台 UNIX 上设置为一种解决方法,但我正在寻找一种直观的解决方案,而无需将其告知所有 Grid 用户。

您可以使用属性 applicationName,其中您可以在节点配置文件中提及实际平台。

因此 Mac OSX 节点的节点配置文件如下所示

{
  "capabilities":
      [
        {
          "browserName": "firefox",
          "maxInstances": 1,
          "applicationName": "OSX"
        }
      ],
  "configuration":
  {
    "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
    "maxSession": 5,
    "port": 5555,
    "host": ip,
    "register": true,
    "registerCycle": 5000,
    "timeout":6000,
    "hubPort": 4444,
    "hubHost": ip
  }
}

这可以在启动时通过参数-nodeConfig传递给节点。

现在为了将测试路由到正确的节点,您还需要设置功能。

例如,如果您想在 OSX 上使用 safari,您可以执行以下操作:

DesiredCapabilities dc = DesiredCapabilities.safari(); dc.setCapability("applicationName", "OSX");

并且您将使用 dc 对象来实例化您的 RemoteWebDriver,并且您的测试将 运行 在 OSX 节点上。