2017-06-08 30 views
1

嗨,大家好我是新進WATIR,或硒,但我想一個cookie添加到我的Watir的瀏覽器,如下面「InvalidCookieDomain」錯誤:硒/的Watir:當試圖添加餅乾

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

我提示以下錯誤:

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

但是,當我刪除域選項,它的工作原理。

我想知道爲什麼我無法將其他域添加到我的Cookie中?

回答

2

WATIR一樣,所有基於Selenium的框架都爲Selenium預定義的命令創建語言特定的包裝。這些命令在Selenium Webdriver W3C標準中定義爲here

如果你去Cookies部分,具體而言,addCookie小節中,您將看到以下內容:

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

domain屬性被綁定到相同的域名給url。因此,基本上,您的域HAS與您當前的urlurl的子域相同。

示例:對於url=global.nba.com,可以設置兩個子域({domain: "global.nba.com"}),以及用於根域({domain: "nba.com"})餅乾。

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

希望這有助於!

+0

嘿謝謝你的回答,但是如果我想在''global.nba.com'之前加''''''''''''''''''''.globla.nba.con''',因爲我想加點起源url之前? –

+0

@taylor據我所知,是的,只要它不影響我剛剛告訴你的同一起源規則。因此,您在其上添加cookie的「url」必須是您正在使用的域的父級或直接兄弟。你能舉出這個例子,以便我們驗證嗎?如果回答您的問題,也接受答案。謝謝。 – iamdanchiv

+0

@taylor我剛剛測試過這個功能,它允許在一個點('.')之前在域值之前。 – iamdanchiv