web-dev-qa-db-ja.com

分度器でchromeのセッションが作成されない例外

Chromeに対して分度器テストを実行しようとすると、以下のエラーが発生します。

私のconf.ts

import {Config} from 'protractor'

export let config: Config = {
    framework: 'jasmine',
    // capabilities: { browserName: 'chrome'},
    multiCapabilities: [
        // {browserName: 'firefox'},
        {
            browserName: 'chrome',
            chromeOptions: {
                args: ['--start-maximized']
            },

        }],

    seleniumAddress: 'http://127.0.0.1:4444/wd/hub',
    seleniumPort: null,
    seleniumArgs: [],
    specs: [
        './Protractor/Login/*.spec.js',

エラー:

Protractor conf.js
[17:19:07] I/hosted - Using the Selenium server at http://127.0.0.1:4444/wd/hub
[17:19:07] I/launcher - Running 1 instances of WebDriver
[17:19:09] E/launcher - session not created exception
from unknown error: Runtime.executionContextCreated has invalid 'context': {"auxData":{"frameId":"8800.1","isDefault":true},"id":1,"name":"","Origin":"://"}
  (Session info: chrome=54.0.2840.59)
  (Driver info: chromedriver=2.22.397933 (1cab651507b88dec79b2b2a22d1943c01833cc1b),platform=Windows NT 6.3.9600 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 1.07 seconds
Build info: version: '2.53.1', revision: 'a36b8b1', time: '2016-06-30 17:37:03'
System info: Host: 'MAL000009416062', ip: '192.168.1.4', os.name: 'Windows 8.1', os.Arch: 'AMD64', os.version: '6.3', Java.version: '1.8.0_73'
Driver info: org.openqa.Selenium.chrome.ChromeDriver
[17:19:09] E/launcher - SessionNotCreatedError: session not created exception
from unknown error: Runtime.executionContextCreated has invalid 'context': {"auxData":{"frameId":"8800.1","isDefault":true},"id":1,"name":"","Origin":"://"}
  (Session info: chrome=54.0.2840.59)
  (Driver info: chromedriver=2.22.397933 (1cab651507b88dec79b2b2a22d1943c01833cc1b),platform=Windows NT 6.3.9600 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 1.07 seconds
Build info: version: '2.53.1', revision: 'a36b8b1', time: '2016-06-30 17:37:03'
System info: Host: 'MAL000009416062', ip: '192.168.1.4', os.name: 'Windows 8.1', os.Arch: 'AMD64', os.version: '6.3', Java.version: '1.8.0_73'
Driver info: org.openqa.Selenium.chrome.ChromeDriver
    at WebDriverError (C:\Users\392811\AppData\Roaming\npm\node_modules\protractor\node_modules\Selenium-webdriver\lib\error.js:27:5)
    at SessionNotCreatedError (C:\Users\392811\AppData\Roaming\npm\node_modules\protractor\node_modules\Selenium-webdriver\lib\error.js:308:5)

conf.ts

multiCapabilities: [

        {
            browserName: 'chrome',
            chromeOptions: {
                args: ['--start-maximized']
            },

        }],

ウェブ上の議論のほとんどはバージョンに関するものです。現在、最新バージョンを使用しています

手がかりはありますか?

乾杯

10
SMPH

Protractorのconfig.jsonファイルを変更することにより、webdriver-managerによってダウンロードされたchromedriverのバージョンを変更できます...

  1. 分度器の設定ファイルを編集します:node_modules/protractor/config.json
  2. chromeドライバーのバージョンを必要なものに変更します。たとえば、「chromedriver」:「2.24」。
  3. Webdriver-managerアップデートを実行します。

投稿したエラーから、分度器は最新のchromeドライバーバージョンを使用していません。スタックトレースでは、chromeドライバーバージョンを2.21

13

Sudharsanの答えの下にコメントを残すのに十分な担当者がまだいませんが、彼があなたに変更するように言っている設定ファイルの場所は実際には

node_modules/protractor/node_modules/webdriver-manager/config.json

変更するのは、分度器tsconfigではなく、webdriver-manager config.jsonです。

そうは言っても、私は以前にこの問題に遭遇し、それを解決するために別のアプローチを取りました。 Sudharsanが提供したソリューションは、一度だけインストールする必要がある場合に機能します。 TFSでビルドを実行し、ビルドエージェントの作業ディレクトリを消去し、各ビルドで新しいリポジトリを取得します。この状況では、各ビルドの前にすべてのことをnpm installするため、webdriverの設定を変更しても機能しません。この場合、常に古いバージョンのchromedriverに戻ります。

代わりにpackage.jsonのdevDependenciesにchromedriverを追加し、webdriver-managerがインストールするchromedriverのバージョンを削除し、更新されたバージョンのchromedriverをgulpタスクで正しい場所に移動しました。したがって、package.jsonでは、devDependenciesの下にこれがリストされています。

"chromedriver": "~2.24.1"

そして、私は次のようなファイルを削除して移動するgulpタスクがあります:

var gulp = require('gulp');
var del = require('del');

var chromeDriverFilesToMove = [
    './node_modules/chromedriver/lib/chromedriver/**'
];

var chromeDriverFilesToDelete = [
    './node_modules/protractor/node_modules/webdriver-manager/Selenium/chromedriver*.exe',
    './node_modules/protractor/node_modules/webdriver-manager/Selenium/chromedriver*.Zip'
];

gulp.task('delete-chromedriver', function() {
    return del(chromeDriverFilesToDelete);
});

gulp.task('move-chromedriver', function() {
    gulp.src(chromeDriverFilesToMove)
        .pipe(gulp.dest('node_modules/protractor/node_modules/webdriver-manager/Selenium/'));
});

gulp.task('chromedriver-update', ['delete-chromedriver', 'move-chromedriver']);

また、分度器はwebdriver-manager updateを実行したときにインストールされた古いバージョンのchromedriverを探しているので、chromedriver.exeを探す場所を指定する必要があります。これを分度器conf.jsに追加すると、起動します。ワーキング。

chromeDriver: "../node_modules/protractor/node_modules/webdriver-manager/Selenium/chromedriver.exe",

このトラブルをすべて解決する必要があるのは馬鹿げていますが、chromedriver 2.22はChrome 53+では動作しないようです。少なくとも私の経験ではそうではありません。

TL; DR

Sudharsanのソリューションを使用して一度インストールするだけでよい場合(正しい構成を変更した場合)、簡単です。あなたが私の状況にあり、分度器を継続的にインストールする必要がある場合は、私のソリューションを試してください。それは私にとってはうまく機能しており、それ以来このエラーに遭遇することはありません。

7
tehbeardedone

私はちょうどする必要がありました:

npm update -g protractor
webdriver-manager update

そして再び機能しました。

4
Marc Stober

分度器には、webdriver-managerの新しいリリース(10.2.6)を使用する新しいリリース(4.0.10)があり、webdriver-managerの更新を呼び出すと、新しいChromedriverに更新されます。必要なことは、package.jsonファイルのProtractorを更新することだけです。

"protractor": "^4.0.9" to "protractor": "^4.0.10"

お役に立てれば :)

1
Sevfuria
  1. 次のコマンドを実行するだけです:
  2. Projectdirectory:/> webdriver-manager update --versions.chrome = ChromeVersion
  3. これを「ChromeVersion」に置き換えますGoogle Chrome Browser Version.Find chrome「Help >> About Google chrome >> For example:Version 76.0.3809.1(Official Build)(64-bit) "。

これがあなたの役に立つことを願っています。

0
Raju Singh

私にとっては、chromedriverとprotractor-conf.jsを更新すると問題が修正されました。

  1. OSに適した最新のchromedriverをダウンロードします(必要に応じてマイナーバージョンを変更します)。ここから http://chromedriver.storage.googleapis.com/index.html?path=2.24/
  2. /usr/local/bin/chromedriverフォルダーに解凍します。
  3. protractor-conf.js(アプリのルートにある必要があります)にconfig.chromeDriver = '/usr/local/bin/chromedriver';の行を追加します
0
Johnny