2017-02-25 27 views
0

どのようにGebでクッキーを設定しますか?私は与えられた例で、次のエラーに実行しているよ:PhamtomJSを使ってGeb/Seleniumにクッキーを設定する方法

org.openqa.selenium.InvalidCookieDomainException:{「にErrorMessage」:....

「のみ現在のドメインのためにクッキーを設定することができます」..また、Cookie Builderを使用してCookieドミノを明示的に設定しようとしましたが、これは別の例外が発生するだけです:org.openqa.selenium.UnableToSetCookieException:{"errorMessage": "Cookieを設定できません"}

GebConfig.groovyファイルのbaseURLですが、これも削除しました。PhantomJSドライバの設定以外は、設定ファイルに設定がありません。

私はOSX上でPhantomJS最新バージョン(1.3.0 jar、2.1.1ドライバOSX)を使用しています。

例は何らかの理由でChrome Webdriverを使用して動作することに注意してください。

import geb.spock.GebSpec 
import org.openqa.selenium.Cookie 

class SetCookieIT extends GebSpec { 
    def "Cookie example"() { 
     given: 
     def options = driver.manage() 

     when: 
     go "https://www.wikipedia.org/" 
     then: 
     !options.getCookieNamed("my-geb-cookie") 

     when: 
     options.addCookie(new Cookie("my-geb-cookie", "foobar")) 
     go "https://www.wikipedia.org/" 
     then: 
     title == "Wikipedia" 
     options.getCookieNamed("my-geb-cookie").value == "foobar" 
    } 
} 
+0

可能な複製(http://stackoverflow.com/questions/24919525/how-to-set-a-クッキーと特定のドメインのセレンのwebdriver-with-python) – Mouneer

+0

@Mouneer、私はその質問を見ましたが、これは重複していません...私はこれがGeb (Groovy)では、それはSeleniumやPythonでさえ問題ありません。 – vicsz

答えて

4

ウィキペディアは、ドメイン名と「org.com」で「すなわち」と綴られていないにも非常に奇妙に見えます。次に実際に実行可能なサンプルを提供したいと思っていて、何か意味のあることをしているかもしれません。 :-7

は私にとって、これはうまく動作します:あなたはそれ以上の問題がある場合は

package de.scrum_master.stackoverflow 

import geb.spock.GebReportingSpec 
import org.openqa.selenium.Cookie 

class SetCookieIT extends GebReportingSpec { 
    def "Cookie example"() { 
    given: 
    def options = driver.manage() 

    when: 
    go "https://www.wikipedia.org/" 
    then: 
    !options.getCookieNamed("my-geb-cookie") 

    when: 
    options.addCookie(new Cookie("my-geb-cookie", "foobar")) 
    go "https://www.wikipedia.org/" 
    then: 
    title == "Wikipedia" 
    options.getCookieNamed("my-geb-cookie").value == "foobar" 
    } 
} 

、あなたの質問を更新し、実際の問題を再現SSCCEを提供してください。質問が変更された後


更新:PhantomJSの問題は、それはあなたが明示的にドメインを指定しない場合は、クッキーを作成することを拒否していることです。これは動作します:[?パイソンとセレンwebdriverを内の特定のドメインにクッキーを設定する方法]

options.addCookie(new Cookie("my-geb-cookie", "foobar", ".wikipedia.org", "/", null)) 
+0

ありがとう!私は例を更新しました...私は私たちの内部アドレスに置き換えて、ウィキペディアをtypo'dしました。それにもかかわらず、あなたの例を使って(GebReportingSpecをGebSpecに変更しただけではない)..私はまだ同じエラーが発生しています。 – vicsz

+0

アップデート...これはOSXのPhantomJSと関係があるようですが、Chrome Driverはこの例で動作しますが、PhantomJSは動作しません。 – vicsz

+0

どのように面白い!私はWin10のボックスでもテストしました。これはIE、Edge、chrome、Firefox、HtmlUnitで動作するため、実際にPJSに関連しているようです。 – kriegaex

関連する問題