Мои тесты nightwatch.js не запускаются в Chrome без CentOS - PullRequest
0 голосов
/ 04 февраля 2019

Я запускаю тесты nightwatch.js, используя Nightwatch версии 1.0.18, и он работает в среде Windows, но когда я запускаю его в centOS после установки Xvfb, я обнаружил ниже ошибку.

 Error while running .navigateTo() protocol action: invalid session id

 Error while running .locateMultipleElements() protocol action: invalid session id

 Error while running .locateMultipleElements() protocol action: invalid session id

Вот мой ночной дозорКод файла .json:

{
  "src_folders": [
    "./tests"
  ],
  "output_folder": "./reports",
  "custom_commands_path": "./custom_commands",
  "custom_assertions_path": "",
  "test_workers": false,
  "webdriver": {
    "start_process": true
  },
  "test_settings": {
    "default": {
      "webdriver": {
        "port": 9515,
        "server_path": "./node_modules/chromedriver/lib/chromedriver/chromedriver",
        "cli_args": [
          "--log",
          "debug"
        ]
      },
      "skip_testcases_on_fail": true,
      "desiredCapabilities": {
        "browserName": "chrome",
        "javascriptEnabled": true,
        "acceptSslCerts": true,
        "chromeOptions": {
          "args": [
            "headless",
            "no-sandbox",
            "disable-gpu"
          ]
        }
      }
    }
  }
}

Я что-то упустил для запуска моих тестов в среде centOS, потому что он работает в среде Windows?

Ответы [ 3 ]

0 голосов
/ 08 мая 2019

Обновление до последней версии chromedriver решило проблему для меня.Вы можете найти последнюю версию здесь;https://www.npmjs.com/package/chromedriver

0 голосов
/ 14 мая 2019

В моей ситуации, когда возникает эта ошибка:

Error while running .navigateTo() protocol action: invalid session id

Я добавил следующий код в .travis.yml:

addons:
  chrome: stable
0 голосов
/ 24 февраля 2019

У меня была такая же проблема с Nightwatchjs и настройкой npm chomedriver.

Справочная информация: Все работало, пока я только недавно не обновил Chromium в своей системе.В дополнение к ошибкам в исходном сообщении, подробное ведение журнала также показывало:

{ 
  message: 'unknown error: Chrome failed to start: exited abnormally',
  error: [ 
    "(unknown error: DevToolsActivePort file doesn't exist)",
    '(The process started from chrome location /usr/bin/chromium is no longer running, so ChromeDriver is assuming that Chrome has crashed.)',
    '(Driver info: chromedriver=2.46.628388 (4a34a70827ac54148e092aafb70504c4ea7ae926),platform=Linux 4.9.0-8-amd64 x86_64)'
  ],
}

После загрузки автономного хроматографа (2.46.628388) в соответствии с моей версией Chromium (72.0.3626.69)это все еще показывало те же ошибки.

Решение: Я закончил загрузкой более старой версии Chromium (71.0.3578.127) и установкой chromeOptions.binary в новоепуть хрома 71 бинарный.Мне также пришлось включить «no-sandbox» в chromeOptions.args.

Вот фрагмент сайта, упомянутого выше:

Загрузка старых сборок Chrome / Chromium

Допустим, вам нужна сборка Chrome 44 для целей отладки.Google не предлагает старые сборки, так как они не имеют актуальных исправлений безопасности.

Однако вы можете получить сборку Chromium 44.x, которая в основном должна соответствовать стабильной версии.Вот как вы найдете это:

  • Посмотрите в https://googlechromereleases.blogspot.com/search/label/Stable%20updates в последний раз "44".было упомянуто.
  • Зацикливание этой истории версий ("44.0.2403.157") в поиске позиции
  • В этом случае возвращается базовая позиция "330231".Это версия того, где был выпущен релиз 44, в мае 2015 года. *
  • Открыть архив непрерывных сборок
  • Пролистать на вашей платформе (Linux / Mac / Win)
  • Вставьте "330231" в поле фильтра в верхней части и дождитесь всех результатов в XHR.
  • В конце концов я получаю идеальный удар: https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?prefix=Mac/330231/
  • Иногдавам, возможно, придется уменьшать номер коммита, пока не найдете его.
  • Загрузите и запустите!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...