在节点配置 json (3.0.1) 中定义 selenium chromedriver 可执行文件的位置?
Define location of selenium chromedriver executable in node config json (3.0.1)?
我知道我可以像这样启动 selenium 网格节点时定义 chrome 驱动程序可执行文件的位置:
-jar -Dwebdriver.chrome.driver="C:\chromedriver.exe" selenium-server-standalone-3.0.1.jar -role node -nodeConfig. nodeConfig.json
但是如何在配置文件中定义 chrome 驱动程序的位置?我试过这个:
{
"capabilities":
[
{
"browserName": "chrome",
"maxInstances": 5,
"seleniumProtocol": "WebDriver",
"webdriver.chrome.driver": "C:\chromedriver.exe"
},
....
但是还是失败了。没什么大不了的,但是尝试将尽可能多的配置移动到子文件中,这是达到此目的的最后一步。
我认为您不能在节点配置 JSON 文件中指定 chromedriver 的位置,因为据我所知,selenium 代码库中没有逻辑,基本上是从它通过它获得的功能列表中读取它的节点配置文件。
与其尝试将 chromedriver 二进制文件的路径放入 JSON 文件,我建议您将 chromedriver 二进制文件的位置作为 PATH 变量的一部分。理想情况下,ChromeDriver 二进制存在应该被视为机器的 pre-requisite(就像您期望安装 java 或安装浏览器的方式一样)
当我在 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"
}
我知道我可以像这样启动 selenium 网格节点时定义 chrome 驱动程序可执行文件的位置:
-jar -Dwebdriver.chrome.driver="C:\chromedriver.exe" selenium-server-standalone-3.0.1.jar -role node -nodeConfig. nodeConfig.json
但是如何在配置文件中定义 chrome 驱动程序的位置?我试过这个:
{
"capabilities":
[
{
"browserName": "chrome",
"maxInstances": 5,
"seleniumProtocol": "WebDriver",
"webdriver.chrome.driver": "C:\chromedriver.exe"
},
....
但是还是失败了。没什么大不了的,但是尝试将尽可能多的配置移动到子文件中,这是达到此目的的最后一步。
我认为您不能在节点配置 JSON 文件中指定 chromedriver 的位置,因为据我所知,selenium 代码库中没有逻辑,基本上是从它通过它获得的功能列表中读取它的节点配置文件。
与其尝试将 chromedriver 二进制文件的路径放入 JSON 文件,我建议您将 chromedriver 二进制文件的位置作为 PATH 变量的一部分。理想情况下,ChromeDriver 二进制存在应该被视为机器的 pre-requisite(就像您期望安装 java 或安装浏览器的方式一样)
当我在 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"
}