因此,我正在尝试使用Selenium/Geb将以前保存的cookie加载到我的Web驱动程序中。首先,我进入域,然后尝试添加cookie。但是cookie域和url域不会相互注册:

Caught: org.openqa.selenium.InvalidCookieDomainException:
You may only add cookies that would be visible to the current domain: .domain=.example.com => .www.example.com
Build info: version: '2.35.0', revision: '8df0c6bedf70ff9f22c647788f9fe9c8d22210e2', time: '2013-0  8-17 12:46:41'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '3.2.0-48-generic', java.version:   '1.6.0_27'
Driver info: driver.version: unknown

似乎cookie的域是.example.com,而我进入http://example.com时所到达的域是.www.example.com。我能想到的唯一解决方案是重写某种欺骗我当前域的方法,但是我不知道该怎么做。

最佳答案

我遇到了类似的问题,但没有明显的原因,却收到“您可能只为当前域设置cookie”错误。

我通过剥离所有参数(名称和值除外)的cookie来解决它:

(Python)

cookies = pickle.load(open("cookies.pkl", "rb"))
for cookie in cookies:
    print cookie
    new_cookie={}
    new_cookie['name']=cookie['name']
    new_cookie['value']=cookie['value']
    driver.add_cookie(new_cookie)

关于java - Selenium addCookie收到无效的Cookie域异常,即使我在正确的域中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19149034/

10-11 22:44
查看更多