問題タブ [gulp-protractor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 分度器で angularjs アプリケーションの Microsoft アカウントのログイン ボタンをクリックできません
Microsoft アカウントのログインが機能しない次のコード:
Chrome 64 ビット ブラウザを使用しています。
javascript - 分度器 browser.getCurrentUrl() がルート変更で機能しない
Angular シングル ページ アプリケーションの e2e テストに分度器を使い始めたところです。ログインページでテストを開始しました。これは私が失敗した場合のために書いたテストです
Tesr ケース 1
上記のコードは完全に機能します。URL でログインの失敗をテストしています。URL が変更されていない場合は、失敗と見なします。Q1 )これは正しいアプローチですか? エラーメッセージを確認する必要があります。このような例を見たので、url でログインの失敗をテストします。
テスト ケース 2
これは、ログインの成功を確認するためのエラー、テストケースが発生する場所です。
上記のテスト ケースは、 を使用しない場合でも完全に機能します。 を使用すると、browser.getCurrentUrl()
次のエラーが発生します。getCurrentUrl
loginPage.submit()
分度器がページと同期するのを待って 11 秒後にタイムアウトしました。https://github.com/angular/protractor/blob/master/docs/faq.mdを参照してください。次のタスクは保留中でした
この問題をグーグルで調べたところ、多くの解決策が見つかりましたが、どれも機能していないようです。
試したソリューション
- 分度器構成ファイル
allScriptsTimeout
にを追加しました。getPageTimeout
defaultTimeoutInterval
設定ファイルに追加- SOの質問link1、link2 、およびこのgithubの問題に従って、 3つすべてを試しましたが、どれも機能していないようです
timeout
エラーメッセージでグーグル検索したところ、このSOの質問link1、link2が見つかりました。動作していないものをすべて試しました
基本的にすべての解決策は、、、を使用するように言っていwait
ます。すべてのリターンが約束されているので、私はファッションですべてを試しました. この問題は を使用していることが原因であることがわかりました。どこが間違っているのか教えてください。分度器を使用した e2e テストについて詳しく知りたいです。sleep
waitForAngular
thenable
browser.getCurrentUrl
分度器の基本、ルート変更でどのように機能するか、および$http
分度器によって非同期ユーザーアクションがどのように処理されるかを知りたいです。promise などを明示的に使用する必要がありますか?
どんな助けでも大歓迎です。
angularjs - 分度器 最初にログイン テスト スクリプトを実行する方法
分度器を使用して Angular Single Page アプリケーションをテストしようとしています。最初にログイン スクリプトを実行する必要があります。そうして初めて、ルート変更時にトークンのチェックがあるため、他のルートに移動できますlocalStorage
。
このテスト方法は正しいですか?. その場合、最初にログイン スクリプトを実行する必要があります。分度器でスペックファイルの順序を制御できますか。
または、トークンをハードコーディングして各スクリプトを個別に実行するlocalStorage
必要があります (各テストの前に個別にログイン API 呼び出しを行う必要があります)。
私のログインスクリプトには以下が含まれています
したがって、実行後Login with correct mail
、localStorage に格納される accessToken を取得し、他のルートのテストを続行できます。これは正しいアプローチですか?そうでない場合、エンドツーエンドでログインして単一のアプリケーションをテストするにはどうすればよいですか。
分度器スタイルガイドでは、次のように言及されています
テストを互いに独立させる
したがってbeforeAll, beforeEach
、各テストの前に、アクセストークンを取得して localStorage に保存するために使用する必要があります。その場合、どうすればよいか教えてください。
どんな助けでも大歓迎です。
ありがとう。
angular - エラー: ReferenceError: システムが定義されていません
Protractor (および webdriver) を起動するように gulp を構成しようとしていますが、「[launcher] Error: ReferenceError: System is not defined」というメッセージが表示されます。以前、システムを認識するようにカルマを設定しましたが、分度器で同じことを行う方法がわかりません。
ここに私のprotractor.conf.jsがあります
私のgulpタスク(gulpfile.js):
および分度器関連 (package.json)
どんな提案でも大歓迎です!
angularjs - Angular Protractor - 変数をデバッグする方法
次のコード スニペットを検討してください。
array
これは、リピーター アイテムの を返します。では、コンソールでこの変数をデバッグするにはどうすればよいですか。私が行うconsole.log(allRows)
と、コンソールではなく配列で次のようになりますhtml
。
では、すべての html 行を含む実際の変数をどのようにデバッグすればよいでしょうか。デバッグドキュメントでそのオプションを見つけることができませんでした。
どんな助けでも大歓迎です。
ありがとう。
アップデート
allRows
次のマークアップがあります。
コンソールで全体を表示する必要があります
angularjs - テストスペックを条件付きで実行する方法 - Angular Protractor Jasmine
角度のある単一ページアプリケーションの e2e テストに分度器ジャスミンを使用しています。次のコード スニペットを検討してください。
上記の例では、モーダル自体が開いていないため、失敗するとShould Open the search modal popup
以下の仕様も失敗します。したがって、以下の仕様を実行しても意味がありません。最後の 2 つの仕様を条件付きで実行できますか? 最初の仕様が合格した場合と同様に、以下の仕様が実行されます。Should Open the search modal popup
Should Open the search modal popup
angular - gulp-angular-protractor とキュウリの統合
だから、私は分度器 (jasmine 2) を使用して非常に優れた e2e テストを書いてきましたが、要件が変更されました: Jasmine2 から Cucumber に切り替える必要があります。現在、Cucumber は分度器によって直接サポートされていません。カスタム フレームワークのセットアップを試みました = > 失敗しました。前述のように、私は gulp-angular-protractorを使用しています。これは、優れた簡単な作業環境 (テストの実行中の webdriver のオン/オフ、gulp コマンドなど) を提供しますが、引き続き維持したいと考えています。
ここに私の設定があります:
パッケージ.json
gulpfile.js:
分度器.conf.js
ダミーテスト:
world.js
login.component.feature
login.component.steps.js
問題: gulp e2e を実行すると、次のようになります。
C:\Users\Documents\dev\node_modules\gulp-angular-protractor\node_m dules\gulp-protractor\node_modules\protractor\lib\runner.js:337:35 at _fulfilled (C:\Users\Documents\dev\ node_modules\gulp-angular-protr ctor\node_modules\gulp-protractor\node_modules\protractor\node_modules\q\q.js:7 7:54) self.promiseDispatch.done (C:\Users\Documents\dev\node_modules\) Promise.promise.promiseDispatch (C:\Users\Documents\dev\node_modul s\gulp- angular-protractor\node_modules\gulp-protractor\node_modules\protractor\ ode_modules\q\q.js:759:13) C:\Users\Documents\dev\node_modules\gulp-angular-protractor\node_m dules\gulp-protractor \node_modules\protractor\node_modules\q\q.js:525:49 at flush (C:\Users\Documents\dev\node_modules\gulp-angular-protractor node_modules\gulp-protractor\node_modules\protractor\node_modules\q\q.js:108:17
私は何が間違っているのですか?