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']
},
}],
ウェブ上の議論のほとんどはバージョンに関するものです。現在、最新バージョンを使用しています
手がかりはありますか?
乾杯
Protractorのconfig.jsonファイルを変更することにより、webdriver-managerによってダウンロードされたchromedriverのバージョンを変更できます...
投稿したエラーから、分度器は最新のchromeドライバーバージョンを使用していません。スタックトレースでは、chromeドライバーバージョンを2.21
。
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のソリューションを使用して一度インストールするだけでよい場合(正しい構成を変更した場合)、簡単です。あなたが私の状況にあり、分度器を継続的にインストールする必要がある場合は、私のソリューションを試してください。それは私にとってはうまく機能しており、それ以来このエラーに遭遇することはありません。
私はちょうどする必要がありました:
npm update -g protractor
webdriver-manager update
そして再び機能しました。
分度器には、webdriver-managerの新しいリリース(10.2.6)を使用する新しいリリース(4.0.10)があり、webdriver-managerの更新を呼び出すと、新しいChromedriverに更新されます。必要なことは、package.jsonファイルのProtractorを更新することだけです。
"protractor": "^4.0.9" to "protractor": "^4.0.10"
お役に立てれば :)
これがあなたの役に立つことを願っています。
私にとっては、chromedriverとprotractor-conf.js
を更新すると問題が修正されました。
/usr/local/bin/chromedriver
フォルダーに解凍します。protractor-conf.js
(アプリのルートにある必要があります)にconfig.chromeDriver = '/usr/local/bin/chromedriver';
の行を追加します