首页 > 解决方案 > 出现错误 org.openqa.selenium.WebDriverException:转发新会话时出错 用于设置 Firefox 功能的 VM 空池

问题描述

我正在使用:java:1.8 Selenium:3.141.59 jar Geco 驱动程序版本:0.25.0 Firefox 版本:69.0.1

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

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

Grid Hub 和节点的配置

下面是代码:

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.WebDriverException:转发新会话时出错 用于设置功能的空 VM 池 {acceptInsecureCerts:true,browserName:firefox,marionette:true,平台:WIN10,版本:} 命令持续时间或超时:801 毫秒构建信息:版本:'3.141.59',修订:'e82be7d358',时间:'2018-11-14T08:25:48' 系统信息:主机:'GP-PIN-IS04',ip:'192.168.250.72',操作系统。名称:'Windows 10',os.arch:'amd64',os.version:'10.0',java.version:'1.8.0_221' 驱动程序信息:driver.version:RemoteWebDriver 原因:org.openqa.grid.common .exception.GridException:转发新会话时出错 用于设置功能的虚拟机空池 {acceptInsecureCerts:true,browserName:firefox,

标签: javaseleniumselenium-gridselenium-firefoxdriver

解决方案


因此,您的错误显示“错误转发新会话空池 VM 以进行设置功能”,这意味着它正在寻找与您在创建远程驱动程序时要求的功能相匹配的节点,但找不到。在启动 geckodriver 的行中,您并没有像 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>"
 }

推荐阅读