【问题标题】:Not able to open web page with added cookies in python selenium无法在 python selenium 中打开添加了 cookie 的网页
【发布时间】:2020-08-12 21:41:48
【问题描述】:

我已登录网站,现在尝试再次加载网站 URL,并期待它自动登录,因为我正在从已登录的页面添加 cookie,但它会生成以下异常,

代码:

import time

from selenium.webdriver import Chrome

driver = Chrome("C:/Users/jupiter/PycharmProjects/webdriver/chromedriver.exe")

driver.get("https://www.flipkart.com/")

driver.maximize_window()

time.sleep(5)

driver.find_element_by_xpath("/html/body/div[2]/div/div/button").click()

time.sleep(5)

driver.find_element_by_xpath("//a[contains(text(), 'Login')]").click()

username =driver.find_element_by_xpath("/html/body/div[2]/div/div/div/div/div[2]/div/form/div[1]/input")

username.send_keys("xyz")

password = driver.find_element_by_xpath("/html/body/div[2]/div/div/div/div/div[2]/div/form/div[2]/input")

password.send_keys("abc@xyz")

driver.find_element_by_xpath("/html/body/div[2]/div/div/div/div/div[2]/div/form/div[3]/button").click()

cookies =driver.get_cookies()

driver = Chrome("C:/Users/jupiter/PycharmProjects/webdriver/chromedriver.exe")

driver.add_cookie(cookies)

driver.get("https://www.flipkart.com/")

例外:

引发异常类(消息、屏幕、堆栈跟踪) selenium.common.exceptions.WebDriverException:消息:无效 参数:缺少“cookie”(会话信息:chrome=81.0.4044.113)
(驱动信息:chromedriver=81.0.4044.69 (6813546031a4bc83f717a2ef7cd4ac6ec1199132-refs/branch-heads/4044@{#776}),platform=Windows NT 10.0.16299 x86_64)

【问题讨论】:

  • get_cookies() 将返回一个带有 cookie 的列表,但 add_cookies() 接受一个 cookie,而不是列表。

标签: python selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

代替

driver.add_cookie(cookies)

你需要使用

for cookie in cookies:
    driver.add_cookie(cookie)

driver.add_cookie 每次调用添加一个 cookie,但 driver.get_cookies() 返回 cookie 列表。

【讨论】:

  • 我也试过了,先生,我得到了这个异常...... raise exception_class(message, screen, stacktrace) selenium.common.exceptions .WebDriverException:消息:无效的 cookie 域(会话信息:chrome=81.0.4044.113)(驱动程序信息:chromedriver=81.0.4044.69(6813546031a4bc83f717a2ef7cd4ac6ec1199132-refs/branch-heads/4044@{#776}),平台=Windows NT 10.0。 16299 x86_64)
【解决方案2】:

你可以使用refresh方法

driver.get(url)
driver.add_cookie({"name": "example", "value": "example"})
driver.refresh()

现在当页面刷新时,它会加载 cookie。

【讨论】:

    猜你喜欢
    • 2017-08-02
    • 2022-11-27
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    • 2015-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多