首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在goto之前设置一个曲奇?

如何在goto之前设置一个曲奇?
EN

Stack Overflow用户
提问于 2019-08-01 07:36:03
回答 2查看 496关注 0票数 1

在Watir 6.16.5和Selenium 3.142.3中,我正在这样做:

代码语言:javascript
复制
b = Watir::Browser.new(driver)
b.cookies.add('foo', 'Hello, world!', domain: 'www.example.com')
b.goto('http://www.example.com')

我想设置曲奇,然后转到网站与曲奇设置。然而,我得到了:

代码语言:javascript
复制
Selenium::WebDriver::Error::InvalidCookieDomainError: Document is cookie-averse
            WebDriverError@chrome://marionette/content/error.js:179:5
            InvalidCookieDomainError@chrome://marionette/content/error.js:317:5
            GeckoDriver.prototype.addCookie@chrome://marionette/content/driver.js:2641:11

我做错了什么?可能是相关的,但是解决方法是什么呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-01 08:05:50

您必须在相同的域中设置cookie。来自W3C规范

如果当前浏览上下文的文档元素是cookie厌恶的文档对象,则返回错误代码无效cookie域的错误。

它在无效cookie域中也有解释

非法尝试在与当前页面不同的域下设置cookie。

解决方法是在域中设置cookie之后,简单地刷新页面。

代码语言:javascript
复制
b = Watir::Browser.new(driver)
b.goto('http://www.example.com')
b.cookies.add('foo', 'Hello, world!', domain: 'www.example.com')
b.refresh
票数 4
EN

Stack Overflow用户

发布于 2019-08-01 09:21:04

嗨,我可以用python给出如何处理cookie的解决方案,希望它能在某种程度上帮助您。

一旦你得到了饼干,你就可以把它存储为:

代码语言:javascript
复制
    with open("cookies.pkl","wb") as cookies:
        pickle.dump(driver.get_cookies(),cookies)

注意:需要导入泡菜,以便将文件存储为泡菜文件。

回收饼干:

代码语言:javascript
复制
def handle_cookies():
    with open("cookies.pkl","rb")as cookies:
        cookie = pickle.load(cookies)
        for ck in cookie:
            driver.add_cookie(ck)

在调用此函数时,它将处理cookie。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57303969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档