web-dev-qa-db-ja.com

ナイトウォッチを使用したChromedriverエラー「Chromeバージョンは52以上でなければなりません」

Nightwatch をセットアップしようとしていますが、latest chromedriverを使用しています supports chrome v52-54 。しかし、テストを実行しようとすると、'Error: Chrome version must be >=52.0.2743.'ここに私が使用しているすべてのものがあります。

プロジェクト構造

|-- nightwatch.json
|-- bin/
|   |-- chromedriver
|   |-- Selenium-server-standalone-2.53.1.jar
|-- tests/
|   |-- sample.js
|-- results/
|-- screens/
|-- node_modules/
|   |-- (lots of modules here)

そして、ここにナイトウォッチ用の私の 設定ファイル があります:

./ nightwatch.json

{
  "src_folders" : ["tests"],
  "output_folder" : "results",
  "custom_commands_path" : "",
  "custom_assertions_path" : "",
  "page_objects_path" : "",
  "globals_path" : "",

  "Selenium" : {
    "start_process" : true,
    "server_path" : "bin/Selenium-server-standalone-2.53.1.jar",
    "log_path" : "results",
    "Host" : "127.0.0.1",
    "port" : 4444,
    "cli_args" : {
      "webdriver.chrome.driver" : "bin/chromedriver"
    }
  },

  "test_settings" : {
    "default" : {
      "launch_url" : "http://localhost",
      "Selenium_port"  : 4444,
      "Selenium_Host"  : "localhost",
      "silent": true,
      "screenshots" : {
        "enabled" : true,
        "path" : "screens/"
      },
      "desiredCapabilities": {
        "browserName": "chrome",
        "javascriptEnabled": true,
        "acceptSslCerts": true
      }
    },

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

テストの実行

次のようなテストを実行します。

nightwatch tests/

エラー

そして、私は次の出力を取得します:

Starting Selenium server... started - PID:  3500

[Sample] Test Suite
=======================

Running:  Demo test Google

Error retrieving a new session from the Selenium server

Connection refused! Is Selenium server started?
{ sessionId: null,
  status: 13,
  state: 'unhandled error',
  value: 
   { message: 'unknown error: Chrome version must be >= 52.0.2743.0\n  (Driver info: chromedriver=2.24.417424 (c5c5ea873213ee72e3d0929b47482681555340c3),platform=Linux 3.2.0-56-generic x86_64) (WARNING: The server did not provide any stacktrace information)\nCommand duration or timeout: 1.42 seconds\nBuild info: version: \'2.53.1\', revision: \'a36b8b1\', time: \'2016-06-30 17:37:03\'\nSystem info: Host: \'N/A\', ip: \'N/A\', os.name: \'Linux\', os.Arch: \'AMD64\', os.version: \'3.2.0-56-generic\', Java.version: \'1.7.0_111\'\nDriver info: org.openqa.Selenium.chrome.ChromeDriver',
     suppressed: [],
     localizedMessage: 'unknown error: Chrome version must be >= 52.0.2743.0\n  (Driver info: chromedriver=2.24.417424 (c5c5ea873213ee72e3d0929b47482681555340c3),platform=Linux 3.2.0-56-generic x86_64) (WARNING: The server did not provide any stacktrace information)\nCommand duration or timeout: 1.42 seconds\nBuild info: version: \'2.53.1\', revision: \'a36b8b1\', time: \'2016-06-30 17:37:03\'\nSystem info: Host: \'N/A\', ip: \'N/A\', os.name: \'Linux\', os.Arch: \'AMD64\', os.version: \'3.2.0-56-generic\', Java.version: \'1.7.0_111\'\nDriver info: org.openqa.Selenium.chrome.ChromeDriver',
     buildInformation: 
      { releaseLabel: '2.53.1',
        buildTime: '2016-06-30 17:37:03',
        class: 'org.openqa.Selenium.internal.BuildInfo',
        buildRevision: 'a36b8b1',
        hCode: 1900167016 },
     cause: null,
     systemInformation: 'System info: Host: \'N/A\', ip: \'N/A\', os.name: \'Linux\', os.Arch: \'AMD64\', os.version: \'3.2.0-56-generic\', Java.version: \'1.7.0_111\'',
     supportUrl: null,
     class: 'org.openqa.Selenium.WebDriverException',
     additionalInformation: '\nDriver info: org.openqa.Selenium.chrome.ChromeDriver',
     hCode: 1299270263,
     screen: null },
  class: 'org.openqa.Selenium.remote.Response',
  hCode: 1144687147 }

誰でもこのエラーを解決する方法を知っていますか?

Chrome version must be >= 52.0.2743.0

Chromedriverはchromeのローカルコピーを使用しますか?実際のクロムを更新する必要がありますか?

13
Katie

Chromedriverはchromeのローカルコピーを使用しますか?実際のクロムを更新する必要がありますか?

はい、 ChromeDriver はSelenium webdriverがchromeを制御するために使用する実行可能ファイルです。

そのため、Selenium webdriverは、デフォルトの場所またはカスタムの場所からインストール済みchromeを起動し、初期化中にSelenium webdriverに指示します ChromeDriver

つまり、基本的に ChromeDriver 実行可能ファイルは、chromeブラウザーとSelenium Webドライバーの間で対話してそれを制御するだけで、独自のchromeを起動するわけではありません_ブラウザ。インストール済みのchromeブラウザを使用します。

そのため、実際にインストールされているクロムを更新する必要があります。

15
Saurabh Gaur

はい、ChromeDriverはローカルのChromeインストールを使用します。Chromeインストールをアップグレードしたくない場合、ChromeDriverで動作するバージョンを指定できます。インストールChromeバージョン。

https://chromedriver.storage.googleapis.com/2.25/notes.txt (「2.25」を変更)で、さまざまなChromeDriverリリースの互換性のあるChromeバージョンを見つけることができますChromeバージョンがそこにリストされているものよりも新しい場合)新しいバージョンに。

テストフレームワークがNode.js webdriver-managerを使用している場合、(たとえば、バージョン2.20の場合)を使用して、必要なChromeDriverバージョンをインストールできます(既にインストールされているバージョンを保持します)。

webdriver-manager update --chrome --versions.chrome=2.20

webdriver-managerを介してSeleniumを起動するときに適切なChromeDriverバージョンを指定します。

webdriver-manager start --versions.chrome=2.20

webdriver-managerが利用できない場合、必要なChromeDriverバージョンをダウンロードし、何らかのテクニックを使用して次のパラメーターをSeleniumサーバーの起動コマンドに渡すことができます。

-Dwebdriver.chrome.driver=/path/to/the/desired/chromedriver_version
11
Janaka Bandara

Ubuntu 16.04を使用している場合、このコードは機能します。

wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | Sudo apt-key add -

x64

Sudo sh -c 'echo "deb [Arch=AMD64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'

x32

Sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'

インストール/更新

Sudo apt-get update
Sudo apt-get install google-chrome-stable

ソース

6
tmmgarcia