无法创建新的远程会话 - Selenium webdriver

Posted

技术标签:

【中文标题】无法创建新的远程会话 - Selenium webdriver【英文标题】:Unable to create new remote session - Selenium webdriver 【发布时间】:2017-06-03 19:11:20 【问题描述】:

我遇到了异常

线程“main”中的异常 org.openqa.selenium.SessionNotCreatedException:无法创建新的 远程会话。所需的能力 = 能力 [marionette=true, browserName=firefox, version=48.0.1, platform=ANY], 必需 尝试运行硒脚本时的功能=功能[]' 在远程 Web 驱动程序中。

集线器和节点配置正确,并且能够相互通信。

Selenium 网络驱动程序:3.0 平台:Windows server 2012 R2。 火狐版本:48.0.1

我的脚本中使用的代码:

       System.setProperty("webdriver.gecko.driver", "mypath/geckodriver.exe");
     DesiredCapabilities capabilities = DesiredCapabilities.firefox(); 
     capabilities.setCapability("marionette", true);
     capabilities.setBrowserName("firefox");
     capabilities.setPlatform(Platform.ANY);

     RemoteWebDriver driver =new RemoteWebDriver(new URL("http://ipofthenode:4444/wd/hub"), capabilities);

     driver.get("http://***.com");

     System.out.println("executed");

详细的堆栈跟踪:

2017 年 1 月 19 日下午 6:07:36 org.openqa.selenium.remote.ProtocolHandshake createSession INFO:尝试双语会话,假设 Postel 的 法律适用于远程端 2017 年 1 月 19 日下午 6:07:37 org.openqa.selenium.remote.ProtocolHandshake createSession 信息: 回退到原始的 OSS JSON Wire 协议。 2017 年 1 月 19 日 6:07:37 PM org.openqa.selenium.remote.ProtocolHandshake createSession INFO: 回退到直接 W3C 远程端连接线程中的异常 “主要” org.openqa.selenium.SessionNotCreatedException:无法 创建新的远程会话。期望的能力 = 能力 [marionette=true, browserName=firefox, version=48.0.1, platform=ANY],所需功能 = Capabilities [] 构建信息: 版本:'3.0.0',修订:'350cf60',时间:'2016-10-13 10:48:16 -0700' 系统信息:主机:'主机名',ip:'IP',os.name:'Windows Server 2012 R2',os.arch:'amd64',os.version:'6.3',java.version: '1.8.0_101' 驱动程序信息:driver.version:RemoteWebDriver at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:91) 在 org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141) 在 org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601) 在 org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:241) 在 org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:128) 在 org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:155) 在 demo.Grid.main(Grid.java:26)

【问题讨论】:

远程机器上的 geckodriver 是否位于正确的路径?还分享你用来在远程机器上启动节点的代码。 感谢 mosaad。将 geckodriver 放入节点机器后开始工作。 【参考方案1】:

创建一个 .bat 文件添加下面的命令

C:\Selenium_Grid
start java -Dwebdriver.gecko.driver=C:\Selenium_Grid\geckodriver\geckodriver.exe -jar C:\Selenium_Grid\selenium-server-standalone-3.0.1.jar -role node -hub http://localhost:4444/grid/register -browser browserName=firefox -port 5555

(用你的替换路径)

然后在执行代码之前启动 .bat 文件

【讨论】:

以上是关于无法创建新的远程会话 - Selenium webdriver的主要内容,如果未能解决你的问题,请参考以下文章

org.openqa.selenium.SessionNotCreatedException:无法创建新的远程会话。在模拟器中初始化android驱动程序时

无法使用 remotewebdriver 和 gecko 驱动程序创建新的远程会话

如何修复 SessionNotCreatedException:尝试运行 Firefox 时无法创建新的远程会话?

无法创建新的远程会话。 Appium

使用 Appium 测试 Android 应用程序时无法创建新的远程会话

移动自动化与 appium -- Selenium 驱动程序