0

我已经创建了一个项目。它是一个 vue.js 应用程序。有一小部分单元测试(开玩笑)和一个端到端测试(守夜)。

当我尝试使用 npm 运行端到端测试时,我得到:

Error retrieving a new session from the selenium server

Connection refused! Is selenium server started?
{ value:
   { message: 'Unable to create session from org.openqa.selenium.remote.NewSessionPayload@16b328bc\nBuild info: version: \'3.12.0\', revision: \'7c6e0b3\', time: \'2018-05-08T15:15:08.936Z\'\nSystem info: host:
\'SYNERGY02\', ip: \'192.168.1.41\', os.name: \'Windows 10\', os.arch: \'amd64\', os.version: \'10.0\', java.version: \'1.8.0_181\'\nDriver info: driver.version: unknown',
     error: 'session not created' },
  status: 33 }

我不知道我会错过什么。这让我困了一个多星期

这是 nightwatch.json

在 D:\xxx\test\bin\myedgedriver.exe 中找到路径

在 D:\xxx\test\e2e\nightwatch.conf.js 中定位路径

require('babel-register')
var config = require('../../config')

// http://nightwatchjs.org/gettingstarted#settings-file
module.exports = {
  src_folders: ['test/e2e/specs'],
  output_folder: 'test/e2e/reports',
  custom_assertions_path: ['test/e2e/custom-assertions'],

  selenium: {
    start_process: true,
    server_path: require('selenium-server').path,
    host: '127.0.0.1',
    port: 4444,
    cli_args: {
      "webdriver.edge.driver": "../bin/MicrosoftWebDriver.exe",
      'webdriver.chrome.driver': require('chromedriver').path,
    }
  },

  test_settings: {
    default: {
      selenium_port: 4444,
      selenium_host: 'localhost',
      silent: true,
      globals: {
        devServerURL: 'http://localhost:' + (process.env.PORT || config.dev.port)
      }
    },

    chrome: {
      desiredCapabilities: {
        browserName: 'chrome',
        javascriptEnabled: true,
        acceptSslCerts: true
      }
    },

    firefox: {
      desiredCapabilities: {
        browserName: 'firefox',
        javascriptEnabled: true,
        acceptSslCerts: true
      }
    },
    edge: {
      desiredCapabilities: {
        browserName: 'edge',
        javascriptEnabled: true,
        acceptSslCerts: true,
        nativeEvents: true
      }
    }
  }
}

和我的窗口版本。

1803 (os build 17134.285)

我的 edgewebdriver 版本。

Release 17134
Version: 6.17134 | Edge version supported: 17.17134 

我的边缘浏览器版本。

Microsoft Edge 42.17134.1.0

最后是我的 package.json 版本的守夜人。

 "nightwatch": "^0.9.12"
"selenium-server": "^3.0.1"
4

1 回答 1

0

此错误消息...

Error retrieving a new session from the selenium server

Connection refused! Is selenium server started?
{ value: { message: 'Unable to create session from org.openqa.selenium.remote.NewSessionPayload@16b328bc\nBuild info: version: \'3.12.0\', revision: \'7c6e0b3\', time: \'2018-05-08T15:15:08.936Z\'\nSystem info: host: \'SYNERGY02\', ip: \'192.168.1.41\', os.name: \'Windows 10\', os.arch: \'amd64\', os.version: \'10.0\', java.version: \'1.8.0_181\'\nDriver info: driver.version: unknown', error: 'session not created' }, status: 33 }

...表示连接到Selenium Server时出错。

Selenium 服务器日志会为我们提供更多导致错误的线索。

但是,您的目标测试环境与下面的现有测试环境之间似乎存在差异,如下所示:

  • 你提到过:

    • 我来自 package.json 版本的守夜人:"selenium-server": "^3.0.1"
  • 但是您的错误跟踪日志提到:

    • version: \'3.12.0\'time: \'2018-05-08T15:15:08.936Z\

解决方案

  • 确保您的测试环境配置有一组独特的Selenium 服务器二进制文件。
  • 在启动之前,请@Tests确保通过以下命令启动Selenium Server :

    java -jar <path_to>/selenium-server-standalone-<version>.jar
    
  • 如果您想使用本机事件功能,请在命令行中使用以下选项指明这一点:

    -Dwebdriver.enable.native.events=1
    
  • 要获得有关其他命令行选项的帮助,请执行:

    java -jar <path_to>/selenium-server-standalone-<version>.jar -help
    
  • 您可以在以下位置找到类似的详细讨论:

于 2018-09-28T09:31:05.857 回答