如何使用chrome node config运行selenium

时间:2016-10-26 21:11:17

标签: selenium selenium-grid

使用2.0,我在节点配置json中使用以下配置设置运行Selenium网格:

{
  ...
  "configuration":[
    ...
    "dwebdriver.chrome.driver=...":""
  ]
}

现在我了解配置变量已被展平,并尝试压缩声明,但Chrome无法启动并在节点控制台中显示错误。

当我在启动节点时添加-D参数(在命令行中 - 感谢How to run selenium 3.x with chrome driver through terminal)我可以成功运行chrome,但是我希望将它全部包含在节点配置文件中

2 个答案:

答案 0 :(得分:0)

我不记得能够通过JSON配置文件传递JVM参数[webdriver.chrome.driver基本上是一个JVM参数]。

我也不记得看到任何用于生成集线器或节点的JSON配置文件的重组。他们总是保持不变。 (有关示例集线器配置,请参阅here,对于示例节点配置,请参见here

如果您不想通过JVM参数指定Chrome驱动程序的位置,我建议您只需将chromedriver.exe所在的路径添加到PATH变量中作为一个每台机器的时间活动。之后,您不需要使用JVM参数指定chromedriver二进制文件所在的位置。

答案 1 :(得分:0)

将此配置文件用于节点: 注意最后两行

{
  "capabilities":
  [
    {
      "browserName": "firefox",
      "marionette": true,
      "maxInstances": 5,
      "seleniumProtocol": "WebDriver"
    },
    {
      "browserName": "chrome",
      "maxInstances": 5,
      "seleniumProtocol": "WebDriver"
    },
    {
      "browserName": "internet explorer",
      "platform": "WINDOWS",
      "maxInstances": 1,
      "seleniumProtocol": "WebDriver"
    },
    {
      "browserName": "safari",
      "technologyPreview": false,
      "platform": "MAC",
      "maxInstances": 1,
      "seleniumProtocol": "WebDriver"
    }
  ],
  "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
  "maxSession": 5,
  "port": -1,
  "register": true,
  "registerCycle": 5000,
  "hub": "http://192.168.1.2:4444",
  "nodeStatusCheckTimeout": 5000,
  "nodePolling": 5000,
  "role": "node",
  "unregisterIfStillDownAfter": 60000,
  "downPollingLimit": 2,
  "debug": false,
  "servlets" : [],
  "withoutServlets": [],
  "custom": {},
  "webdriver.gecko.driver":"c:/drivers/geckodriver.exe",
  "webdriver.chrome.driver":"c:/drivers/chromedriver.exe"
}