Nightwatch Chromedriver Самоподписанный SSL - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь запустить Nightwatch с просто chromedriver и могу заставить все работать нормально без SSL.Когда я загружаю свое приложение с самозаверяющими сертификатами, хотя время просто истекает, я просматривал бесконечную документацию для NightWatch и Chromedriver и просто не могу заставить это работать.

  "desiredCapabilities": {
    "browserName": "chrome",
    "acceptSslCerts": true,
    "acceptInsecureCerts": true,
    "javascriptEnabled": true,
    "webStorageEnabled": true,
    "chromeOptions" : {
      "args": [
        "headless",
        "no-sandbox",
        "disable-gpu",
        "disable-web-security",
        "ignore-certificate-errors"
      ]
    }
  }

Мой файл глобальных переменных:

const chromedriver = require('./chromedriver.js');
module.exports = {
  before: (done) => {
    chromedriver.start()
    done()
  },
  after: (done) => {
    chromedriver.stop()
    done()
  }
}

и файл моего хром-драйвера:

const tcpPortUsed = require('tcp-port-used')

const getPortFromArgs = (args) => {
  const port = 9515
  if (!args) return port
  const portRegexp = /--port=(\d*)/
  const portArg = args.find((arg) => portRegexp.test(arg))
  return portArg ? parseInt(portRegexp.exec(portArg)[1]) : port
}

exports.start = (args, returnPromise) => {
  const cp = require('child_process').spawn('/usr/bin/chromedriver', args)
  cp.stdout.pipe(process.stdout)
  cp.stderr.pipe(process.stderr)
  exports.defaultInstance = cp
  if (!returnPromise) return cp
  const port = getPortFromArgs(args)
  const pollInterval = 100
  const timeout = 10000
  return tcpPortUsed.waitUntilUsed(port, pollInterval, timeout).then(() => cp)
}

exports.stop = () => {
  if (exports.defaultInstance != null) exports.defaultInstance.kill()
}
...