Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Selenium addCookie获取无效Cookie域异常,即使I';我在正确的领域_Java_Selenium_Groovy_Geb - Fatal编程技术网

Java Selenium addCookie获取无效Cookie域异常,即使I';我在正确的领域

Java Selenium addCookie获取无效Cookie域异常,即使I';我在正确的领域,java,selenium,groovy,geb,Java,Selenium,Groovy,Geb,因此,我尝试使用Selenium/Geb将以前保存的cookie加载到我的web驱动程序中。首先我转到域,然后尝试添加cookies。但是cookie域和url域不相互注册: Caught: org.openqa.selenium.InvalidCookieDomainException: You may only add cookies that would be visible to the current domain: .domain=.example.com => .www.e

因此,我尝试使用Selenium/Geb将以前保存的cookie加载到我的web驱动程序中。首先我转到域,然后尝试添加cookies。但是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
。我能想到的唯一解决办法是重写某些方法来欺骗我的当前域,但我不知道如何去做

我遇到了一个类似的问题,在那里我没有明显的原因就收到了“您只能为当前域设置cookies”错误

我通过将cookie中除名称和值之外的所有参数分条来解决这个问题:

(Python)


这个问题由来已久,可能给出的答案曾经有效,但在Selenium 3.140.0中,剥离域并仅添加名称和值仍然会引发无效的cookie域异常

对我来说,有效的方法是使用browser.get,然后对加载的页面使用相同的域执行browser.add_cookie


我使用会话cookies绕过登录页面确认了这一点。

演示如何设置cookies?密码,我也有同样的问题。任何线索?这可能不适用于验证cookie域的服务器-如果服务器希望cookie的域为.www.server.com,而您让浏览器将其与www.server.com碰撞,则服务器可能会拒绝或忽略它。
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)