找不到使用JSON配置文件

时间:2016-07-06 14:13:21

标签: java json google-chrome selenium webdriver

我使用Selenium和Java并使用JUnit执行测试。它一直告诉我

  

无法找到Chrome二进制文件

二进制位置不标准,因为我需要测试多个版本。我确定Chrome.exe启动程序存在于指定的JSON位置...
看起来司机仍然在标准位置搜索。

我已获得JSON配置文件:

{
   "capabilities":[
      {
         "browserName":"chrome",
         "platform":"WINDOWS",
         "chromeOptions":{
            "binary":"C:/path/chrome_binary.exe"
         },
         "maxInstance":1
      }
   ],
   "configuration":{
      "cleanUpCycle":2000,
      "timeout":30000,
      "register":true,
      "hubPort":4444,
      "hubHost":"hub.location.net",
      "maxSessions":1
   }
}

正如你在Windows上看到的那样,我尝试使用斜杠和反斜杠的路径,但它不会以任何方式工作。
ChromeOptions对象应该没问题,我使用了this official documentation

命令行是:

java -jar selenium-server-standalone.jar -role webdriver -nodeConfig path/to/conf.json -Dwebdriver.chrome.driver=path/to/chromedriver.exe

在代码中,我创建了RemoteWebDriver对象,并且我只传递了浏览器,版本和平台。它适用于Firefox。例如,在JSON节点配置中,我已经设置了firefox_binary,并且在代码中,我没有将它传递给DesiredCapabilities。 Selenium仍然可以使用我用上面的命令启动的远程Web驱动程序。

谢谢!

3 个答案:

答案 0 :(得分:0)

也许应该可以应用这个改变

"binary":"C://path//chromedriver.exe"

编辑1

尝试使用此JSON配置文件:

{
   "capabilities":[
      {
         "browserName":"chrome",
         "platform":"WINDOWS",
         "binary":"C:/path/chrome_binary.exe"
         "maxInstance":1
      }
   ],
   "configuration":{
      "cleanUpCycle":2000,
      "timeout":30000,
      "register":true,
      "hubPort":4444,
      "hubHost":"hub.location.net",
      "maxSessions":1
   }
}

最终,请尝试以下面的示例来逃避“/”:

"binary":"C://path//chrome_binary.exe"

"binary":"C:\/path\/chrome_binary.exe"

答案 1 :(得分:0)

Windows中的路径使用反斜杠:

"binary":"C:\\path\\chrome_binary.exe"

答案 2 :(得分:0)

终于明白了。没有在任何文档上看到它,因为他们都谈论binarychromeOptions

答案就在这里https://stackoverflow.com/a/33151376/4675568,非常感谢他,简而言之:没有chromeOptions,只有chrome_binary密钥就像firefox一样。

"capabilities": [{
  "browserName": "chrome",
  "platform": "WINDOWS",
  "chrome_binary":"C:/path/to/chrome_binary.exe",
  "maxInstance":1
}]