前のセッションから保存されたSelenium firefox WebdriverにCookieをプッシュしようとしていますが、エラーが発生しました。
org.openqa.Selenium.InvalidCookieDomainException: Document is cookie-averse
私はこれを読みます HTML Standard Cookie-averse と何も理解していません。
それで、質問は前のものから保存されたwebdriverセッションにクッキーをプッシュする方法ですか?
あなたが見ているエラーはそれをすべて言います:
org.openqa.Selenium.InvalidCookieDomainException: Document is cookie-averse
適切なトピック cookie-averse Document object
を参照しました。ドキュメントには、Document Object
が次の状況ではcookieを嫌うDocumentオブジェクトとして分類される可能性があることが明記されています。
Browsing Context
がないドキュメント。Browsing Context は、Document Objects
がユーザーに提示される環境です。 DOM Tree
。 Web Browser
のタブまたはウィンドウには、通常、iframe
またはframeset
のフレームと同じように、ブラウジングコンテキストが含まれています。
JavaDocsによると、ユーザーが現在のURLとは異なるドメインにCookieを追加しようとすると、例外 InvalidCookieDomainException
がスローされます。
簡単に言うと、ドメインexample.com
からCookieを保存した場合、これらの保存されたCookieは、Webドライバーセッションを介して他の異なるドメインにプッシュできません。 example.edu
。保存されたCookieは、example.com
内でのみ使用できます。
ありがとうDebanjanB!ドライバーを起動してbefore URLタブを開いた直後にCookieをプッシュしようとしました。
実用的なソリューション:
driver.get('http://mydomain')
driver.manage.addCookie(....)
driver.get('http://mydomain')
タブを開き、Cookieを追加して、もう一度タブを開くだけです
driver.manage.addCookie(....)
を使用してURLを取得する前に、driver.get('http://mydomain')
を使用してcookieを設定していると思います。
Cookie can be only add to the request with same domain. When webdriver init, it's request url is `data:` so you cannot add cookie to it. So first make a request to your url then add cookie, then request you url again.