如何区分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 节点上。
我有 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 节点上。