栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

org.openqa.selenium.InvalidCookieDomainException:使用Selenium和WebDriver禁止文档访问Cookie

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

org.openqa.selenium.InvalidCookieDomainException:使用Selenium和WebDriver禁止文档访问Cookie

此错误消息…

org.openqa.selenium.InvalidcookieDomainException: document is cookie-averse

……意味着非法企图在与当前文档不同的域下设置cookie。


细节

具体根据HTML的生活标准规范一个

document Object
可被归类为在以下情况下一个cookie规避文档对象:

  • 没有的文件
    Browsing Context
  • URL方案不是网络方案的文档。

深潜

对于无效的cookie域,当您访问不喜欢cookie的文档(例如本地磁盘上的文件)时,可能会发生此错误。

举个例子:

  • 样例代码:
        from selenium import webdriver    from selenium.common import exceptions    session = webdriver.Firefox()    session.get("file:///home/jdoe/document.html")    try:        foo_cookie = {"name": "foo", "value": "bar"}        session.add_cookie(foo_cookie)    except exceptions.InvalidcookieDomainException as e:        print(e.message)
  • 控制台输出:
    InvalidcookieDomainException: document is cookie-averse

如果您已存储来自域的

example.com
cookie, 则无法 通过webdriver会话将这些存储的cookie
推送到任何其他不同的域,例如
example.edu
。存储的cookie只能在中使用
example.com
。此外,要在将来自动登录用户,您只需要存储一次cookie,即用户登录后的时间。在添加cookie之前,您需要浏览到收集cookie的相同域。


例如,一旦用户在应用程序中登录,就可以存储cookie,如下所示:

    from selenium import webdriver    import pickle    driver = webdriver.Chrome()    driver.get('http://demo.guru99.com/test/cookie/selenium_aut.php')    driver.find_element_by_name("username").send_keys("abc123")    driver.find_element_by_name("password").send_keys("123xyz")    driver.find_element_by_name("submit").click()
# storing the cookiespickle.dump( driver.get_cookies() , open("cookies.pkl","wb"))driver.quit()

稍后,如果您希望用户自动登录,则需要先浏览到特定的域/ url,然后必须添加cookie,如下所示:

    from selenium import webdriver    import pickle    driver = webdriver.Chrome()    driver.get('http://demo.guru99.com/test/cookie/selenium_aut.php')    # loading the stored cookies    cookies = pickle.load(open("cookies.pkl", "rb"))    for cookie in cookies:        # adding the cookies to the session through webdriver instance        driver.add_cookie(cookie)    driver.get('http://demo.guru99.com/test/cookie/selenium_cookie.php')



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/367102.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号