私たちの(PHP)アプリケーションでは、Angular.jsクライアントアプリをロードするために特定のCookieを設定する必要があります。 Cookieが設定されていない場合、例外がスローされ、エラーページが表示されます。
つまり、E2Eテストを実行するには、Cookieを設定する必要がありますが、分度器がbrowser.get
呼び出しの直後にAngular)を見つけようとしているため、以下は失敗します(例外がスローされました)。
browser.get('http://' + domain + '/');
browser.manage().addCookie('foo', 'boo', '/', domain);
Cookieを設定した後、browser.get
を呼び出そうとしました。
browser.manage().addCookie('foo', 'boo', '/', domain);
browser.get('http://' + domain + '/');
ただし、これにより次のエラーが発生します。
「ドキュメント」に「cookie」プロパティを設定できませんでした:「data:」URL内でCookieが無効になっています。
この状況に対処する方法はありますか?おそらく、最初のbrowser.get
呼び出しを行うときにAngularをチェックしないように、または何らかの方法でURLを取得する前にドメインにCookieを設定するように、分度器に指示しますか?
分度器入門 ドキュメントで解決策を見つけました:
browser.driver.get('http://' + domain + '/');
browser.manage().addCookie('foo', 'boo', '/', domain);
browser.driver.get
ではなくbrowser.get
に注意してください。これにより、分度器がAngularアプリを探すのを防ぎ、Cookieを設定できます。次にit
ステートメント内で別のbrowser.get
を使用します。