在节点配置json(3.0.1)中定义selenium chromedriver可执行文件的位置?

时间:2017-02-08 15:39:58

标签: selenium-chromedriver selenium-grid

我知道当我启动像这样的selenium网格节点时,我可以定义chrome驱动程序可执行文件的位置:

-jar -Dwebdriver.chrome.driver="C:\chromedriver.exe" selenium-server-standalone-3.0.1.jar -role node -nodeConfig. nodeConfig.json

但是如何在配置文件中定义chromedriver的位置?我试过这个:

{
    "capabilities":
[
    {
        "browserName": "chrome",
        "maxInstances": 5,
        "seleniumProtocol": "WebDriver",
        "webdriver.chrome.driver": "C:\chromedriver.exe"
    },
....

但它仍然失败。这不是一个大问题,但是试图将尽可能多的配置移动到子文件中,这是为此目的的最后一步。

2 个答案:

答案 0 :(得分:1)

我认为您不能在节点配置JSON文件中指定chromedriver的位置,因为AFAIK在selenium代码库中没有逻辑,它基本上从它通过节点配置文件获得的功能列表中读取它。

我建议您将chromedriver二进制文件的位置包含在PATH变量的一部分中,而不是尝试将chromedriver二进制文件的路径放在JSON文件中。理想情况下,ChromeDriver二进制存在应被视为机器的先决条件(就像您期望安装Java或安装浏览器一样)

答案 1 :(得分:0)

当我将两个属性添加到json配置文件中时,它与我一起工作,如下所示: 注意最后两行

{
  "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"
}