2017-06-08 5 views
1

Hallo Jungs hinzuzufügen versuchen, ich bin neu in WATIR oder Selen, aber ich habe versucht, ein Cookie in meinem Watir Browser hinzufügen, wie unten:Selen/Watir: ‚InvalidCookieDomain‘ Fehler beim Cookie

browser = Watir::Browser.new :firefox  
browser.goto(url) 
browser.cookies.add name,value, domain: ".www.example.com" 

ich mit dem folgenden Fehler aufgefordert bin:

Selenium::WebDriver::Error::UnknownError: ReferenceError: InvalidCookieDomainError is not defined

Aber, wenn ich die Domain-Option löschen, funktioniert es.

Ich habe mich gefragt, warum ich meinen Cookies keine andere Domain hinzufügen kann?

Antwort

2

Wie WATIR erstellen alle Selenium-basierten Frameworks sprachspezifische Wrapper für vordefinierte Selenium-Befehle. Diese Befehle sind in dem Selenium Webdriver W3C Standard here definiert.

If the current browsing context’s document element is a cookie-averse Document object, return error with error code invalid cookie domain.

Ihr domain Attribut gebunden ist, auf die gleiche Domain wie angegeben url:

Wenn Sie gehen zu Cookies Abschnitt, insbesondere der addCookie Unterabschnitt, werden Sie folgendes sehen. Also, im Grunde ist Ihre Domain HAS die gleiche wie Ihre aktuelle url, oder eine Subdomäne der url.

Beispiel: Für url=global.nba.com Sie Cookies sowohl für die Sub-Domain ({domain: "global.nba.com"}), sowie für die Root-Domain festlegen ({domain: "nba.com"}).

browser = Watir::Browser.new :firefox  
browser.goto(url) 
browser.cookies.add("<yourCookieName>","<yourCookieValue>", {domain: "<sameUrlOriginDomain>"}) 

Hoffe, das hilft!

+0

Hey danke für deine Antwort, aber was ist, wenn ich dot '". "' Vor '" global.nba.com "hinzufügen will,' 'so wird es' ".globla.nba.con" 'weil ich dot hinzufügen will vor der Ursprungs-URL? –

+0

@taylor von meinem Wissen, ja solange es nicht mit der gleichen Ursprungsregel interferiert, von der ich dir gerade erzählt habe. Ihre 'URL', zu der Sie den Cookie hinzufügen, muss die übergeordnete oder direkte Schwester der Domäne sein, die Sie verwenden. Können Sie uns das Beispiel geben, damit wir es bestätigen können? Akzeptieren Sie auch die Antwort, wenn Sie Ihre Frage beantwortet haben. Vielen Dank. – iamdanchiv

+0

@taylor Ich habe gerade die Funktionalität getestet und es erlaubt den Domain-Wert mit einem Punkt ('.') vorangestellt. – iamdanchiv

Verwandte Themen