org.openqa.selenium.WebDriverException: 转发新会话时出错 找不到: 功能 {ac



我安装了Windows 10 - 64,Firefox 61.0.2,Java。我正在使用 selenium-grid 和 selenium-server-standalone-3.11..jar 0 和 geckodriver 21.0 执行我的测试,但是当我运行它时,测试显示以下错误:

org.openqa.selenium.WebDriver异常:转发新的时出错 会话找不到:功能 {接受不安全证书: true, 浏览器名称: 火狐, 平台: WINDOWS, 版本: 61.0.2}

我的代码:

private void createBrowserInstance() throws MalformedURLException {
switch (environmentHandler.getTestBrowser().toLowerCase()) {
case "firefox":
FirefoxOptions firefox  = new FirefoxOptions();
firefox.setCapability("marionette", false);
browCapab = DesiredCapabilities.firefox();
browCapab.setBrowserName("firefox");
browCapab.setPlatform(Platform.WINDOWS);
browCapab.setVersion("61.0.2");

Error forwarding the new session cannot find是网格告诉你的方式,它找不到与你请求的功能相匹配的节点。

网格使用以下 4 个属性进行功能匹配 [ 将测试用例中请求的功能与节点必须提供的实际功能相匹配 ]

  • 浏览器名称
  • 平台
  • 版本
  • 应用程序名称(此 AFAIK 未记录,但它确实存在。看这里 (

您还没有提到如何启动节点。具体来说,您没有提到是否正在使用节点配置 JSON 文件(此配置文件通常用于调整节点支持的功能等(。但我假设你没有使用一个。

当您在没有任何额外自定义的情况下启动节点时,它不知道version功能。

因此,它可能有一个可以支持firefox的节点windows.但是您的测试正在寻找在windows上运行的firefox version 61.0.2。这就解释了错误。

要解决此问题,您可以执行以下操作之一:

  • 从测试代码中删除行browCapab.setVersion("61.0.2");(或(

  • 启动节点时使用节点配置文件中的版本信息。

    要了解如何使用节点配置文件,您可以在此处参考我的博客文章

此错误消息...

org.openqa.selenium.WebDriverException: Error forwarding the new session cannot find : Capabilities {acceptInsecureCerts: true, browserName: firefox, platform: WINDOWS, version: 61.0.2}

。表示壁虎驱动程序无法转发新会话。

您的主要问题是您使用的配置不兼容,如下所示:

  • 根据您的问题,您使用:
    • selenium-server-standalone-3.11.0.jar
    • geckodriver 21.0
  • 因此,您必须强制使用木偶功能。要实现此目的之一:

    • 您可以保持功能木偶不变,因为默认情况下marionette设置为True
    • 您还可以指定功能木偶,如下所示:

      FirefoxOptions firefox_options  = new FirefoxOptions();
      firefox_options.setCapability("marionette", true);
      
  • Firefox是一个关键字/保留字,因此不要在测试中使用此术语。

  • 其余代码看起来不错。
  • 根据 WebDriver W3C 编辑器的草稿:
    • browserName:如果 value 不是等于匹配功能中的"browserName"条目的字符串,则返回 success 并显示数据 null。
    • browserVersion:使用实现定义的比较算法将值与匹配功能中的"browserVersion"条目进行比较。比较是接受使用"<"、"<="、">"和">="运算符对版本施加约束的值。如果两个值不匹配,则返回成功,数据为 null。
    • platformName:如果 value 不是等于匹配功能中的"platformName"条目的字符串,则返回成功,数据为 null。
  • 您可以在org.openqa.selenium.WebDriver中找到相关讨论异常:转发新会话时出错找不到:功能

相关内容

最新更新