我知道当我启动像这样的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"
},
....
但它仍然失败。这不是一个大问题,但是试图将尽可能多的配置移动到子文件中,这是为此目的的最后一步。
答案 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"
}