Protractor: Chrome74 +で[email protected]を使用するための回避策

作成日 2019年04月25日  ·  55コメント  ·  ソース: angular/protractor

@cnishina回避策はありますか? または、最新のWebドライバーの修正/更新を含むマイナーな分度器5のリリースの可能性はありますか?

理由:大規模な分度器プロジェクトをバージョン6.0.0に移行するのは大変な努力です。 Chromeが自動更新されると、あなたはSOLになります。

問題の説明
分度器エラー

fixed bug

最も参考になるコメント

こんにちは@cnishina

@shihuawang@raymonsaadallaと同様の問題があり

次のバージョンのアプリケーションがあります。

  • Chromeは74.0.3729.131、
  • 分度器は5.4.2、
  • webdriver-managerは12.1.4、
  • ノードはv8.12.0、
  • chromedriverは74.0.3729.6です。

また、webdriver-managerとProtractor(上記と同じバージョン)の新規インストールも行いました。
分度器スクリプトを実行しても同じ結果が得られ、Chromeブラウザは表示されますが、その後永久にハングします。

残念ながら、Chromeをバージョン73にダウングレードすることはできません。 この問題を回避するための回避策はありますか?

全てのコメント55件

現在webdriver-manager13に関連付けられている修正があります。

幸いなことに、これらの変更が行われていたとき、私はwebdriver-managerの修正に取り組んでいました。 Protractor5.4.2をwebdriver-manager13で使用できます。https://github.com/angular/webdriver-manager/pull/372ただし、複数ある場合、これが直接接続とローカルでどのように機能するかはわかりません。ノードモジュールディレクトリ内のwebdriver-managerのバージョン。

Protractor5でwebdriver-manager13をリリースできますか? おそらく、バージョン13でwebdriver-managerのモバイルサポートを削除したため、重大な変更と見なされる可能性があります。

Protractor 5 + webdriver-manager13リリースのディスカッションタグを設定します。

私は実際、これがこれ以上の会話を刺激していないことに驚いています。 私は間違っているかもしれませんが、5.4.2の他の企業はこれに見舞われ、6.0.0にアップグレードする代わりに回避策を見つける緊急性を感じていると思います。

別の5.xxリリースを作成するために必要な労力を誰かが推測できますか?

@cnishina返信の前に、ハッキングして最新のwebdriver-managerを5.4.2で動作させるようにしました。 私は単に:

  1. npmがインストールされました13
  2. webdriver-manager updateを実行してchromedriver74をダウンロードしました
  3. セレンフォルダーをコピーしました

    • node_modules\webdriver-manager\selenium

    • node_modules\protractor\node_modules\webdriver-manager\selenium

うん。 5.4.2ではなくドライバープロバイダーを見るとき、私はマスターブランチを見ていました。 したがって、13を機能させるには、さらに多くの作業を行う必要があります。 PRを更新しに行きましょう。 これを試すには、webdriver-managerのベータリリースを作成する必要があるかもしれません。

わかりましたhttps://github.com/angular/webdriver-manager/pull/372は、Protractor 5.4.2を使用した13の回避策です(テストあり!)。

さて、私は今途方に暮れています。 今日突然、昨日のエラーは表示されなくなり、テストはchrome74とchromedriver2.46で正常に実行されます。

そのため、以前は73でテストが正常に実行されていましたが、意図的に74に更新した後、上記のエラーが発生しました。 したがって、私はそれが関連していると思いました。Chromeを74にアップグレードした人は、セレングリッドハブ/ノードをローカルでスピンアップしない限り、テストを実行できなくなります。

ドキュメントによると、Chromedriver2.46はChrome74をサポートしていませんが、少なくとも今すぐテストを実行できますか? 他に何を変えることができたのか考えはありますか? または、そのエラーが関連している場合でも?

Chrome 74.0.3729.108
分度器5.4.2
webdriver-manager 12.1.2
chromedriver_2.46

気にしないでください、私はあなたのSO投稿を見たばかりで、以前のビルドログを見ると、 webdriver:manager updateがダウンロードされていたようです

selenium-server-standalone-4.0.0-alpha-1.zip.jar
の代わりに
selenium-server-standalone-3.141.59.jar

だから今これは実際の問題です。 Chrome 74が登場し、Protractor5.4.2はwebdriver-manager12.xxを使用します。これは2.xxchromedriversのみをダウンロードします。 これは問題であり、すぐにホットフィックスがあります。

したがって、Protractor5.4.2で動作するwebdriver-manager12の修正は次のとおりです: https

そのため、これは[email protected]のリリースで解決されました

どうやって入手するの?

  • ノードモジュールディレクトリの新規インストールを実行します(node_modulesフォルダーを削除し、 npm install )。
  • 強制インストールを行うnpm install -f

StackOverflowの投稿の詳細については、 https ://stackoverflow.com/questions/55910242/when-using-protractor-5-4-2-webdriver-manager-downloads-2-46-which-is-not-compa/55911176を

Protractorがまだドライバー2.46をインストールするという問題があり、webdriver-managerを自分でインストールして依存関係に追加しようとすると、インストールされているchromedriverがProtractorで見つかりません。

"C:\Program` Files\nodejs\node.exe" C:\Users\Kurt\WebstormProjects\hcp\node_modules\protractor\bin\protractor "C:\Users\Kurt\WebStorm 2019.1.1\plugins\JavaScriptLanguage\helpers\protractor-intellij\lib\protractor-intellij-config.js" --intellijOriginalConfigFile=C:\Users\Kurt\WebstormProjects\hcp\e2e\protractor.conf.js --disableChecks --specs C:\Users\Kurt\WebstormProjects\hcp\e2e\src\settings\homepage.e2e-spec.ts "--grep=^core "
[02:18:10] I/launcher - Running 1 instances of WebDriver
[02:18:10] I/direct - Using ChromeDriver directly...
[02:18:10] E/direct - Error code: 135
[02:18:10] E/direct - Error message: Could not find update-config.json. Run 'webdriver-manager update' to download binaries.
[02:18:10] E/direct - Error: Could not find update-config.json. Run 'webdriver-manager update' to download binaries.
    at Direct.getNewDriver (C:\Users\Kurt\WebstormProjects\hcp\node_modules\protractor\built\driverProviders\direct.js:63:31)
    at Runner.createBrowser (C:\Users\Kurt\WebstormProjects\hcp\node_modules\protractor\built\runner.js:195:43)
    at C:\Users\Kurt\WebstormProjects\hcp\node_modules\protractor\built\runner.js:339:29
    at _fulfilled (C:\Users\Kurt\WebstormProjects\hcp\node_modules\q\q.js:834:54)
    at C:\Users\Kurt\WebstormProjects\hcp\node_modules\q\q.js:863:30
    at Promise.promise.promiseDispatch (C:\Users\Kurt\WebstormProjects\hcp\node_modules\q\q.js:796:13)
    at C:\Users\Kurt\WebstormProjects\hcp\node_modules\q\q.js:556:49
    at runSingle (C:\Users\Kurt\WebstormProjects\hcp\node_modules\q\q.js:137:13)
    at flush (C:\Users\Kurt\WebstormProjects\hcp\node_modules\q\q.js:125:13)
    at processTicksAndRejections (internal/process/task_queues.js:81:9)
[02:18:10] E/launcher - Process exited with error code 135

Process finished with exit code 135

そしてここに設定ファイルがあります

const {SpecReporter} = require('jasmine-spec-reporter');

exports.config = {
  SELENIUM_PROMISE_MANAGER: false,
  allScriptsTimeout: 11000,
  specs: [
    './src/**/*.e2e-spec.ts'
  ],
  capabilities: {
    'browserName': 'chrome'
  },
  directConnect: true,
  baseUrl: 'http://localhost:4200/',
  framework: 'jasmine',
  jasmineNodeOpts: {
    random: true,
    showColors: true,
    defaultTimeoutInterval: 30000
  },
  random: false,
  onPrepare: async () => {
    require('ts-node').register({
      project: require('path').join(__dirname, './tsconfig.e2e.json')
    });
    jasmine.getEnv().addReporter(new SpecReporter({spec: {displayStacktrace: true}}));
    await browser.driver.manage().window().maximize();
  }
};

webdriver-managerupdateを実行すると

webdriver-manager: using local installed version 12.1.3
[02:33:40] I/update - chromedriver: file exists C:\Users\Kurt\WebstormProjects\hcp\node_modules\webdriver-manager\selenium\chromedriver_75.0.3770.8.zip
[02:33:40] I/update - chromedriver: unzipping chromedriver_75.0.3770.8.zip
[02:33:40] I/update - chromedriver: chromedriver_75.0.3770.8.exe up to date
[02:33:41] I/update - selenium standalone: file exists C:\Users\Kurt\WebstormProjects\hcp\node_modules\webdriver-manager\selenium\selenium-server-standalone-3.141.59.jar
[02:33:41] I/update - selenium standalone: selenium-server-standalone-3.141.59.jar up to date
[02:33:41] I/update - geckodriver: file exists C:\Users\Kurt\WebstormProjects\hcp\node_modules\webdriver-manager\selenium\geckodriver-v0.24.0.zip
[02:33:41] I/update - geckodriver: unzipping geckodriver-v0.24.0.zip
[02:33:41] I/update - geckodriver: geckodriver-v0.24.0.exe up to date


package.jsonからwebdriver-managerを削除したら、node_modulesを削除して、 npm inpm i-fwebdriver-manager updateを実行します。

C:\Users\Kurt\WebstormProjects\hcp>webdriver-manager update
[02:38:17] I/file_manager - creating folder C:\Users\Kurt\WebstormProjects\hcp\node_modules\protractor\node_modules\webdriver-manager\selenium
[02:38:17] I/config_source - curl -oC:\Users\Kurt\WebstormProjects\hcp\node_modules\protractor\node_modules\webdriver-manager\selenium\standalone-response.xml https://selenium-release.storage.googleapis.com/
[02:38:17] I/config_source - curl -oC:\Users\Kurt\WebstormProjects\hcp\node_modules\protractor\node_modules\webdriver-manager\selenium\chrome-response.xml https://chromedriver.storage.googleapis.com/
[02:38:17] I/config_source - curl -oC:\Users\Kurt\WebstormProjects\hcp\node_modules\protractor\node_modules\webdriver-manager\selenium\gecko-response.json https://api.github.com/repos/mozilla/geckodriver/releases
[02:38:17] I/downloader - curl -oC:\Users\Kurt\WebstormProjects\hcp\node_modules\protractor\node_modules\webdriver-manager\selenium/chromedriver_2.46.zip https://chromedriver.storage.googleapis.com/2.46/chromedriver_win32.zip
[02:38:18] I/downloader - curl -oC:\Users\Kurt\WebstormProjects\hcp\node_modules\protractor\node_modules\webdriver-manager\selenium/selenium-server-standalone-3.141.59.jar https://selenium-release.storage.googleapis.com/3.141/selenium-server-standalone-3.141.59.jar
[02:38:18] I/update - chromedriver: unzipping chromedriver_2.46.zip
[02:38:19] I/downloader - curl -oC:\Users\Kurt\WebstormProjects\hcp\node_modules\protractor\node_modules\webdriver-manager\selenium/geckodriver-v0.24.0.zip https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-win64.zip
[02:38:20] I/update - geckodriver: unzipping geckodriver-v0.24.0.zip

C:\Users\Kurt\WebstormProjects\hcp>

@ Kurt29奇妙なことに、node_modules / protractor / node_modules / webdriver-manager /package.jsonでバージョンを確認できます。 グローバルインストールを使用していますか?

特定のバージョンをダウンロードし、特定のバージョン、ステータスを開始し、75がダウンロードされないようにするための修正案。

https://github.com/angular/webdriver-manager/issues/376

修正を加えて12.1.4をリリースしました: https--versions.chrome 74.0.3729.6をダウンロードできるはずです。 これは12.1.3で壊れました。

@ luker2これを私と一緒に確認して、12.1.4を試してみませんか?

@cnishina私の側で動作します。

--versions.chromeフラグを使用して74と75の両方を指定すると、それぞれのドライバーがダウンロードされました。 フラグなしでダウンロードした74.0.3729.6

ありがとう!

これに付随するStackOverflowの投稿は次のとおりです: https

ローカルのnode_modulesに分度器を再インストールしましたが、webdriver-managerのバージョンは同じままでした: "webdriver-manager": "^ 12.0.6"。 また、新しいフォルダにローカルにインストールしようとしましたが、同じ結果です。 おそらくそれはnpmの問題です...

webdriver-manager package.jsonではwebdriver-managerは正しい「バージョン」:「12.1.4」ですが、分度器package.jsonの依存関係ではwebdriver-managerのバージョンは「webdriver-manager」:「^ 12.0.6」であることに注意してください。 それは私を混乱させました。 ただし、everithingはうまく機能します。

はい、^ 12.0.6は、最新のマイナーバージョンリリースを取得することを意味します。 したがって、この場合、12.1.4がダウンロードされます。

正常にインストールされたように見えますが、Protractorのテストケースはすべて失敗しました。 金曜日(3日前)に機能しましたが、現在は再び失敗しました。
google-chrome-stableが74.0.3729.131-1にアップグレードされたときに失敗が始まりました。 以前のgoogle-chrome-stableバージョンをインストールすることで、最初はテスト作業を行うことができました。 そして金曜日は分度器5-4-2とChrome74で動作しました。しかし、今では再び動作せず、回避策を見つけることができません。 お知らせ下さい。

私はubuntu16.04dockerを使用しています。

@cnishina確かに「^」npmバージョンを完全に忘れてしまいました説明と修正をありがとう

#5230が閉じているので、コメントをここに移動します。

新しいバージョンの[email protected]が機能しないため(5月3日金曜日にのみ機能しました)、古いバージョンを試す必要がありましたが、どちらも機能しません。

Chrome 73は5月3日金曜日以前は機能していましたが、その後は機能しなくなりました。 現在、テストを実行できません。 解決策が必要です。 アドバイスをお願いします。 前もって感謝します。

明確化:以前にインストールした古いバージョンは正常に機能します。 私はドッキングウィンドウを作成するときしかし、、現在のバージョンまたは古いバージョンのいずれかで動作しません。 そのため、新しいバージョンの何かが壊れているように見えます。

問題を絞り込みました。 Angularコードでボタンが次のように定義されている場合、失敗が発生します。
<button type="submit" class="btn btn-info pull-right" ui-sref="xxx.xxx.xxx">Create New Element</button>
分度器のテストスクリプトは次のとおりです。
browser.driver.findElements(by.xpath('//*[contains(text(), "' + arguments[0] + '")]'));
ここで、arguments [0] = "新しい要素を作成"

現在、webdrivermanagerバージョン12.1.4とchromedriver74.0.3729.6を使用しているので、すべてが機能するはずですが、chromeブラウザー74.0.3729.131で実行すると、テストが失敗します。 ただし、以前の73バージョンで実行すると、完全に正常に機能します。 なにか提案を?
ありがとう

アプリケーションのWebUIコードとテストスクリプトに関連していないようで、回避策は再び失敗しました。 新しいバージョンでは、無害な例外や非ブロッキングエラーの戻りを処理できないようです。 したがって、エラーを返したり例外をスローしたりしないようにアプリケーションコードを完全に変更しない限り、実際には回避策はありません。

73がリリースされたときにインストールされたシステムのみが機能します。 しかし、73を新しいサーバーにインストールすると、それも機能しません。

任意のバージョン(新規インストール)を動作させる方法はありますか?

金曜日に何かが起こった、それは金曜日に働いていた。

こんにちは@cnishina

@shihuawang@raymonsaadallaと同様の問題があり

次のバージョンのアプリケーションがあります。

  • Chromeは74.0.3729.131、
  • 分度器は5.4.2、
  • webdriver-managerは12.1.4、
  • ノードはv8.12.0、
  • chromedriverは74.0.3729.6です。

また、webdriver-managerとProtractor(上記と同じバージョン)の新規インストールも行いました。
分度器スクリプトを実行しても同じ結果が得られ、Chromeブラウザは表示されますが、その後永久にハングします。

残念ながら、Chromeをバージョン73にダウングレードすることはできません。 この問題を回避するための回避策はありますか?

私は@Priyankajoshipjと同じ会社にいます。 (私のアプリケーションはすべて、上記の彼女と同じバージョンです。)Google Chromeブラウザーの添付画像は、分度器スクリプトを実行しようとしたときに発生するものです。 ブラウザが表示され、そのように永久にハングします。 テストがタイムアウトし、手動で閉じるまでブラウザはそのままになります。

2019-05-10_Hanging Protractor

@Niyarlatotepノードバージョン10.9.0に関連付けられたnpmがwebdriver-managerバージョン12.0.6をダウンロードしたことに気付きました。 ノードバージョン10.15.3を試したところ、Protractor5.4.2にはwebdriver-manager12.1.4が含まれています。 それでもこの問題が発生する場合は、npmに関する既知の問題を調査します。

@shihuawangサンプルテストを行いました。 非常によく似たchrome + chromedriverバージョンがあります。 https://github.com/cnishina/protractor542-chrome74この例では、ダウンロードしたChromeバージョンとChromeDriverバージョンを含めています。 これは、少なくとも簡単な例ではうまくいきます。 上記の問題についても、node、npm、およびwebdriver-managerのバージョンを再確認します。 まだChrome73を使用している場合は、バージョン73.0.3683.68を参照します。 これはwebdriver-manager update --versions.chrome 73.0.3683.68で実行できます。 まだwebdriver-manager12.0.xを使用している場合は、バージョン73で動作するchromedriver 2.46( webdriver-manager update --versions.chrome 2.46 )がダウンロードされます。

@raymonsaadallaバージョン73に関する上記のコメントを参照してください。Chromedriver73.0.3683.68または2.46のいずれかを使用できます。

@ XL175816@Priyankajoshipj簡単な例でこれを機能させることができました: https

分度器がグローバルにインストールされているかどうかを確認してください。 node_modulesフォルダーを削除して、再試行してください。 async / awaitでテストしましたが、webdriver-manager12.1.4でこれらの問題は発生しませんでした。 私のノードバージョンは10.15.3です

package.lock.jsonを削除して、npninstallを再度実行することもできます。

npm dedupeコマンドも試してください。 手動でインストールすると、webdriver-managerバージョンのバグが修正されます。

@vsravuriの提案を数回

@cnishina私たちのテストは月曜日(5/6)の午後まで機能しました。 Google Chromeが自動的にバージョン74に更新されるまで、彼らは一日中働いていました。 その後、数分前に正常に実行したものも含め、すべて失敗しました。 どのスクリプトにもasync / awaitはありません。 実際、私たちが最初にアクセスするWebサイトはAngularページです。

ノード10.15.3を使用していますか? テストを実行したときに表示されるエラーは何ですか? webdriver-managerアップデートの出力は何ですか?

こんにちはcnishina、
バージョン74+ webdriver-manager 12.1.4 + ChromeDriver 74 + nodejs 6.x + Protractor5.4.2は機能しません。

これは、Chromeの安定バージョンがアップグレードされたときに何度か発生し、後で修正されるたびに発生しました。 しかし、今回は修正されていません。 私は以前、それが私の誤解であった一時的に修正されたと言いました。 したがって、74で修正されることはありません。

かつてはインストール73で動作させることができましたが、現在は動作しません。

以前にインストールした73は正常に機能しますが、新規インストールでは機能しません。

そして、失敗の原因も例外ではありません。 それはプロセスのタイムアウトに関係しているかもしれません、何か他のものかもしれません。

こんにちはvsravuri、分度器はグローバルにインストールされており、他のほとんどのケースは機能しました。 そして、74にアップグレードする前は、まだ機能していました。 73を使用した以前のインストールも引き続き機能しますが、公式の夜間テストのために新しいDockerにインストールする必要があります。 この問題により、私たちのプロジェクトはすべて遅れています。

こんにちはvsravuri、私のエラーは、ステップの1つでタイムアウトが発生する新しいレコードの作成に失敗しましたが、それでも作成する必要があります。 かつてはクローム74まで機能していました。かつては73が機能しませんでしたが、後で修正されました。 同じ方法で74を修正できますか?

74より前は、いつでも古いバージョンに戻して動作させることができます。 しかし、今回は運がありません。

ブラウザのキャッシュを(手動で)クリアすると、アプリケーションのタイムアウトの問題が解決する可能性があることがわかりましたが、分度器に追加すると、キャッシュがクリアされないようです。 分度器のキャッシュをクリアする方法を教えてください。 私がウェブで見つけたものは私にはうまくいきません。

ChromeDriver74と自動化スクリプトに問題があるかどうかを確認する必要があります。 ブラウザのキャッシュをクリアするには、Cookie、ローカルストレージ、またはセッションストレージのいずれを削除するかを選択する必要があります。

これを試して
browser.executeScript( 'window.sessionStorage.clear();');
browser.executeScript( 'window.localStorage.clear();');
browser.manage()。deleteCookie( "test_cookie");

こんにちはvsravuri、
私は後でクリアキャッシュを機能させましたが、以下のリンクが示唆しているように、それが関数内にある必要があります。
https://stackoverflow.com/questions/45218022/how-to-clear-a-browser-cache-in-protractor?rq=1

したがって、これは私の特定の問題に対する回避策です。 しかし、誰かがChromeブラウザと同じようにこの状況を処理し、手動テストと同じように動作するように修正できることを願っています。 これは最近のいくつかのChromeリリースで問題になっており、74を除いてすべてがようやく修正されました。

@Priyankajoshipjと私は次のバージョンのアプリケーションを持っています:

  • Chromeは74.0.3729.131、
  • 分度器は5.4.2、
  • webdriver-managerは12.1.4、
  • ノードはv10.15.3、
  • chromedriverは74.0.3729.6です。

スクリプトを実行しても、Chromeが空白で、以前と同じエラーが発生します。 (上から繰り返しますが、ブラウザーは表示されますが空白であり、アプリケーションがあるhttps:// localhostに到達することさえできず、そのように永遠にハングします。テストはタイムアウトし、ブラウザーは私たちが手動で閉じます。)ハングするため、cmdは何も言わず(カーソルが点滅するだけです)、エラーが何であるかさえわかりません。

スクリプトを実行する前にChromeキャッシュをクリアしても、機能しません。 同じ結果になります。 そして、私たちのテストはとにかくキャッシュをクリアするべきではありません。

リードできるものを見つけました。 上記の@cnishinaの簡単なテストを実行することができ、https:// localhostにアクセスしてすぐに閉じ、「Protractorがページと同期するのを待っている間にエラーが発生しました」と言うか、 localhostにまったくアクセスしません(上記で添付した、永遠にぶら下がっている空白のブラウザー)。

ただし、スクリプト内のすべてのコードを変更することは、非常に大きな労力を意味します。 また、前述のように、残念ながらChromeをバージョン73にダウングレードすることはできません。 Chromeバージョン74が修正されることを願っています。

@ XL175816今後は、制御フローが非推奨になるため、すべてを非同期/

@shihuawang新しいバグを開いて、さらに情報を追加してください。 どのように失敗しますか? 何してたの? エラーメッセージは何ですか? コードのサンプルセットはありますか? どの環境でテストを実行していますか? 上からのメッセージを読んで、どこから始めればいいのか、どうやって助けたらいいのかわからない。

これが解決されたので、この会話もロックダウンします。 誰かがまだこの問題に遭遇した場合に備えて、私はそれを開いたままにしておきます。 フレームワークに問題があると思われる分度器の問題が発生した場合は、新しい問題を自由に開いてください。 サポートヘルプをお探しの場合は、こちらからお問い合わせください: https

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

smarts picture smarts  ·  3コメント

mvolkmann picture mvolkmann  ·  3コメント

psech picture psech  ·  3コメント

nt3rp picture nt3rp  ·  3コメント

vishalshivnath picture vishalshivnath  ·  3コメント