BppLOG

Berlin → Tokyo

nightwatch.jsで"Error retrieving a new session from the selenium server"が出る時の対処法

nightwatch.js でテストを実行しようとするとエラーが出るようになってしまっていました。

$ gulp test 
[00:57:49] Using gulpfile ~/dev/nightwatch-test/gulpfile.js
[00:57:49] Starting 'test'...
Starting selenium server... [00:57:49] Finished 'test' after 93 ms
started - PID:  94653
Initialized

[TEST] Test Suite
======================

Running: 

Error retrieving a new session from the selenium server
{ state: 'unhandled error',
  sessionId: null,
  hCode: 951618073,
  value: 
   { hCode: 190665125,
     suppressed: [ [length]: 0 ],
     message: 'Connection refused (Connection refused)',
     localizedMessage: 'Connection refused (Connection refused)',
     class: 'java.net.ConnectException',
     screen: null,
     cause: null },
  class: 'org.openqa.selenium.remote.Response',
  status: 13 }


Connection refused! Is selenium server started?

FAIL: 1

調べてみるとnightwatchの設定を見直せという回答がいくつか。
stackoverflow.com

だが、これまでは動いていたコードなので、設定がオカシイというのは有り得ないと思うものの一応見直してみる。

"selenium": {
    "start_process": true,

ひとまず上記パラメータを true にするようなのだが、案の定すでに設定されていた。
エラーやstackoverflowの他の投稿などを見ていると、chromedrive が上手く起動していないのではないかと思ったので、パッケージを入れ直してみることに。

$ npm install --save-dev chromedriver   
npm WARN deprecated npmconf@2.1.2: this package has been reintegrated into npm and is now out of date with respect to npm

> chromedriver@2.26.1 install ~/dev/nightwatch-test/node_modules/chromedriver
> node install.js

Downloading https://chromedriver.storage.googleapis.com/2.26/chromedriver_mac64.zip
Saving to /var/folders/32/smt2k31x6gzfwrhmv63c3jxmcb6l8_/T/chromedriver/chromedriver_mac64.zip
Receiving...
Received 782K...
Received 1578K...
Received 2361K...
Received 3150K...
Received 3934K...
Received 4481K total.
Extracting zip contents
Copying to target path ~/dev/nightwatch-test/node_modules/chromedriver/lib/chromedriver
Fixing file permissions
Done. ChromeDriver binary available at ~/dev/nightwatch-test/node_modules/chromedriver/lib/chromedriver/chromedriver
- minimist@0.0.8 node_modules/chromedriver/node_modules/minimist
- mkdirp@0.5.1 node_modules/chromedriver/node_modules/mkdirp
- minimist@0.0.8 node_modules/npmconf/node_modules/minimist
- mkdirp@0.5.1 node_modules/npmconf/node_modules/mkdirp
nightwatch-auto-test@0.0.0 ~/dev/nightwatch-auto-test
├─┬ browser-sync@2.11.1
│ ├─┬ chokidar@1.4.1
│ │ ├── inherits@2.0.3 
│ │ └── path-is-absolute@1.0.1 
│ └─┬ resp-modifier@5.0.2
│   └─┬ minimatch@2.0.10
│     └─┬ brace-expansion@1.1.6 
│       └── balanced-match@0.4.2 
├─┬ chromedriver@2.26.1 
│ ├─┬ npmconf@2.1.2
│ │ ├── config-chain@1.1.11 
│ │ ├─┬ nopt@3.0.6
│ │ │ └── abbrev@1.0.9 
│ │ ├─┬ once@1.3.3
│ │ │ └── wrappy@1.0.2 
│ │ └─┬ osenv@0.1.4 
│ │   └── os-tmpdir@1.0.2 
│ └─┬ rimraf@2.5.4 
│   └─┬ glob@7.1.1 
│     ├── fs.realpath@1.0.0 
│     ├── inflight@1.0.6 
│     └── minimatch@3.0.3 
└─┬ gulp@3.9.1
  └─┬ tildify@1.1.2
    └── os-homedir@1.0.2


これで無事動きました。


Selenium実践入門 ―― 自動化による継続的なブラウザテスト (WEB+DB PRESS plus)

Selenium実践入門 ―― 自動化による継続的なブラウザテスト (WEB+DB PRESS plus)

  • 作者: 伊藤望,戸田広,沖田邦夫,宮田淳平,長谷川淳,清水直樹,Vishal Banthia
  • 出版社/メーカー: 技術評論社
  • 発売日: 2016/02/02
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログ (4件) を見る
Seleniumデザインパターン & ベストプラクティス

Seleniumデザインパターン & ベストプラクティス

開眼!  JavaScript ―言語仕様から学ぶJavaScriptの本質

開眼! JavaScript ―言語仕様から学ぶJavaScriptの本質