

## 前提・実現したいこと

自社プロダクトで人力で行っているシナリオテストの工数・負荷を削減したく  
Selenium×Node.jsでテスト自動化を行おうとしていますが、調査の段階で詰まってしまっています。。。

## 環境

  * Mac OS10.12.6
  * Node 8.11.1
  * Selenium Server 3.12.0
  * Selenium WebDriver 4.0.0
  * ChromeDriver 2.38

## やったこと

**1\. Node.js のインストール**

[公式サイトから](https://nodejs.org/en/)

**2\. selenium-webdriverのインストール**

npm経由でインストール

[code]

    $ npm install selenium-webdriver
    
[/code]

**3\. selenium-serverのインストール**

Homebrew経由でインストール

**4\. Chromeドライバのインストール**

[ChromeDriver - WebDriver for
Chrome](https://sites.google.com/a/chromium.org/chromedriver/)

→ドライバをダウンロードしたらファイルを移動

[code]

    $ mv /Users/username/Downloads/chromedriver ./
    $ ls -la
    total 31920 
    drwxr-xr-x 7 username staff 238 5 24 17:42 . 
    drwxr-xr-x+ 55 username staff 1870 5 24 17:42 .. 
    -rwxr-xr-x@ 1 username staff 11917200 4 20 16:39 chromedriver 
    drwxr-xr-x 41 username staff 1394 5 24 16:45 node_modules 
    -rw-r--r-- 1 username staff 9367 5 24 16:45 package-lock.json
    
[/code]

**5\. Selenium Server の起動**

バックグラウンドで起動

[code]

    $ selenium-server -port 4444 &amp;
    [1] 33415
    C02SY1XFGTFJ:selenium username$ 18:04:14.512 INFO [GridLauncherV3.launch] - Selenium build info: version: '3.11.0', revision: 'e59cfb3'
    18:04:14.513 INFO [GridLauncherV3$1.launch] - Launching a standalone Selenium Server on port 4444
    2018-05-24 18:04:14.624:INFO::main: Logging initialized @441ms to org.seleniumhq.jetty9.util.log.StdErrLog
    18:04:14.882 INFO [SeleniumServer.boot] - Welcome to Selenium for Workgroups....
    18:04:14.882 INFO [SeleniumServer.boot] - Selenium Server is up and running on port 4444
    
[/code]

## 発生している問題・エラーメッセージ

サンプルとなるテストコードを書きます。

[code]

    $ vim sample.js
    
    // WebDriver の初期化
    const webdriver = require('selenium-webdriver');
    // ブラウザの選択
    const browser = new webdriver.Builder().forBrowser('chrome').build();
    
    // ページタイトルの取得
    browser.get('http://example.selenium.jp/reserveApp/').then(()=&gt;{
        browser.getTitle().then(title =&gt; console.log('ページタイトル:',title))
    });
    
    // ブラウザの終了
    browser.close();
    browser.quit();
    
[/code]

上記コードを実行させると、、、

[code]

    $ node sample.js 
    (node:13216) UnhandledPromiseRejectionWarning: NoSuchSessionError: no such session
      (Driver info: chromedriver=2.38.552518 (183d19265345f54ce39cbb94cf81ba5f15905011),platform=Mac OS X 10.12.6 x86_64)
        at Object.checkLegacyResponse (/Users/ko-kamenashi/selenium/node_modules/selenium-webdriver/lib/error.js:585:15)
        at parseHttpResponse (/Users/ko-kamenashi/selenium/node_modules/selenium-webdriver/lib/http.js:533:13)
    at Executor.execute (/Users/ko-kamenashi/selenium/node_modules/selenium-webdriver/lib/http.js:468:26)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
    (node:13216) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
    (node:13216) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
    
[/code]

とエラーになります。  
エラーメッセージ「NoSuchSessionError: no such session」等でググると記事は出てくるのですが、  
本事象の解決とは至っていません。

## 以上です

お手数ですが皆様のお知恵を拝借できれば幸いです。宜しくお願い致します。


CC BY-SA 4.0
2018-05-25T08:25:28.350
44254
2018-05-25T08:25:28.350
13771
question
node.js google-chrome selenium
Selenium×Node.jsでテスト実行すると「NoSuchSessionError: no such session」となりうまくいかない