我使用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驱动程序。
谢谢!
答案 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)
终于明白了。没有在任何文档上看到它,因为他们都谈论binary
或chromeOptions
。
答案就在这里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
}]