java - 出现错误 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
下面是代码:
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,
解决方案
因此,您的错误显示“错误转发新会话空池 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>"
}
推荐阅读
- excel - 如何根据条件为VBA中的excel XY散点图中的点着色?
- python - 如何使用 Python 执行以下命令?
- java - 从 java.net 下载 openjdk12 的证书问题
- python - 过滤后跟随机数字行的字符串
- sql-server - 如何动态更改存储过程中表的架构
- azure - 通过 .NET 访问 Azure 通知中心定价层
- jquery - Jquery Autocomplete 在 Rails 中因 json 响应而失败
- for-loop - Golang 作业
- python - python - 记录请求的旅程
- python - 如何将 Numba 中另一个库中的函数用于 Cuda GPU?