当前位置: 首页 > 知识库问答 >
问题:

org.openqa.selenium.WebDriverExc0019:错误转发新会话找不到:功能{接受InsecureCerts:真与火狐

索寒
2023-03-14

我安装了视窗10-64,火狐61.0.2,Java。我正在执行我的测试与硒网格和selenium-server-standalone-3.11.0.jar,和geckoDrive21.0,但当我运行它,测试显示以下错误:

org.openqa.selenium.WebDriverExc0019:错误转发新会话找不到:功能{接受InsecureCerts: true,浏览器名称: Firefox,平台: 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");

共有2个答案

程英资
2023-03-14

此错误消息。。。

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

...意味着GeckoDriver无法转发新会话。

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

  • 根据您正在使用的问题:

所以你必须强制使用木偶的能力。要实现这一目标,要么:

>

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

    FirefoxOptions firefox_options  = new FirefoxOptions();
    firefox_options.setCapability("marionette", true);
    

    Firefox是一个关键字/保留字,所以不要在测试中使用这个术语。

    • BrowserName:如果value不是一个字符串,等于匹配功能中的BrowserName条目,则返回成功的空数据。
    • BrowserVersion:使用实现定义的比较算法,将值与匹配功能中的"BrowserVersion"条目进行比较。比较是接受一个值,该值使用"

  • 万英武
    2023-03-14

    错误转发新会话找不到是网格告诉您,它找不到与您请求的功能匹配的节点。

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

    • 浏览器名称
    • 站台
    • 版本
    • 应用程序名称(此AFAIK没有文档记录,但它确实存在。请参见此处)

    您没有提到如何启动节点。具体来说,您没有提到是否使用节点配置JSON文件(此配置文件通常用于调整节点支持的功能以及其他内容)。但我假设你没有用。

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

    因此,它可能有一个节点可以在windows上支持firefox。但是您的测试正在寻找Firefox61.0版。2窗口上运行。这就是错误的原因。

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

    >

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

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

     类似资料:
    • 轮毂启动命令: 节点启动命令: 环境详细信息(根据评论更新):Selenium 3.11.0、Chrome 66、ChromeDriver 2.38 当我尝试运行它时,会出现以下错误: 有人知道我做错了什么吗?

    • 我的selenium配置有问题。我正在尝试在iOS和Android上自动化Selenium测试。 iOS测试独立于iOS驱动程序正常运行。Android测试也在独立正常运行。 但是当我想运行iOS和Android时,我遇到了问题! 对于我的Android测试,我正在运行这个命令,一切都很好: 但是,当我想要集成iOS测试时,我会按照以下指南更改此命令的端口:http://selendroid.io

    • 我正在使用Selenium Grid。我最近将VM(node)更新到Windows 10,它不再工作了。以下是详细信息 我通过以下方式将此VM Win10注册为网格节点: (这之前与VM Win8一起工作得很好)我可以在网格上看到这个VM Win10注册了3个浏览器IE11、FF和Chrome 在我的代码中,我通过以下方式创建web驱动程序: 我总是得到这个错误当我执行测试 转发新会话时出错,无法

    • 我最近安装了一个用于开发测试的selenium网格环境。然而,我们面临以下错误: 转发新会话时出错,无法找到:功能{browserName:chrome,chromeOptions:{args:[--headless,--no sandbox],二进制:,首选项:{plugins.always\u open\u pdf\u externally:true},w3c:false},loggingPr

    • 我正在硒网格上尝试。我收到这个错误: 转发新会话时出错为设置功能清空VM池[{BrowserName=chrome, version=47, Platform=WIN8_1}] 代码如下:

    • 我正在使用:Java:1.8 Selenium:3.141.59 jar Geco驱动程序版本:0.25.0 Firefox版本:69.0.1 在运行代码时获得以下异常日志: org.openqa.selenium.WebDriverException:为安装功能转发VM的新会话空池时出错{AcceptinSecureCerts:true,BrowserName:firefox,Marionett