获取错误 org.openqa.selenium.WebDriver异常:转发新会话时出错 用于设置 Firefox 功



我正在使用: 爪哇:1.8 硒: 3.141.59 罐 Geco 驱动程序版本:0.25.0 火狐版本 : 69.0.1

以下是可执行文件.bat文件的详细信息:

start java -jar C:/eclipse-workspace/Selenium_Grid/Config/selenium-server-standalone-3.141.59.jar -role hub
start java -Dwebdriver.chrome.driver=D:/Selenium/chromedriver_win32/chromedriver.exe -jar C:/eclipse-workspace/Selenium_Grid/Config/selenium-server-standalone-3.141.59.jar -role node -hub http://localhost:4444/grid/register -port 5558 -maxSession 5 -browser browserName=chrome,maxInstances=10 
start java -Dwebdriver.gecko.driver=D:/Selenium/geckodriver-v0.25.0-win64/geckodriver.exe -jar C:/eclipse-workspace/Selenium_Grid/Config/selenium-server-standalone-3.141.59.jar -role node -hub http://localhost:4444/grid/register -port 5559 -maxSession 5

网格集线器和节点的配置

下面是代码:

public static RemoteWebDriver getBrowserDriver(final String browser)
throws MalformedURLException {
return new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"),
getBrowserCapabilities(browser));
}
private static DesiredCapabilities getBrowserCapabilities(
final String browserType) throws MalformedURLException {
switch (browserType.toLowerCase()) {
case "firefox":
System.out.println("Opening firefox driver");
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setBrowserName("firefox");
capabilities.setPlatform(Platform.WIN10);       
return capabilities;
}
}

在运行代码时低于异常日志:

org.openqa.selenium.WebDriver异常:转发新会话时出错 用于设置的虚拟机空池 功能 {acceptInsecureCerts: true, browserName: firefox, 木偶: true, platform: WIN10, version: } 命令持续时间或超时:801 毫秒 构建信息:版本:"3.141.59",修订版:"e82be7d358",时间:"2018-11-14T08:25:48" 系统信息: 主机: 'GP-PIN-IS04', ip: '192.168.250.72', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_221' 驱动程序信息: 驱动程序版本: 远程网络驱动程序 由以下原因引起:org.openqa.grid.common.exception.GridException:转发新会话时出错 用于设置功能的 VM 空池 {acceptInsecureCerts: true, browserName: firefox,

因此,您的错误显示"转发新会话时出错 用于设置功能的 VM 空池",这意味着它正在寻找与您在创建远程驱动程序时要求的功能匹配的节点,但找不到。在启动壁虎驱动程序的行中,您没有像 chrome 浏览器那样指定浏览器。 创建节点配置文件并在启动节点时将其传入可能会更容易,如下所示:

java -Dwebdirver.gecko.driver="D:/Selenium/geckodriver-v0.25.0-win64/geckodriver.exe" -jar selenium-server-standalone-3.8.1.jar -role node -hub "http://localhost:4444/grid/register/" -port 5559 -nodeConfig config.json

以下是您的 Firefox 节点的配置文件可能的样子:

{
"capabilities": [
{
"browserName": "firefox",
"platform": "WIN10",
"maxInstances": 5
}      
],
"hub": "http://<hub ip>:<hub port>"
}