首页 > 解决方案 > 身份验证 cookie 不能与 selenium chromedriver 重用

问题描述

我正在使用 selenium 3.141.0 和 chromedriver 86.0.4240.22 登录网站,存储 cookie。在下一次会话期间,我希望使用现有的 cookie 来防止再次登录。但是,它不起作用。一切似乎都运行良好,但网站https://primexbt.com没有确认现有的 cookie。我能做些什么?

    options = Options()
    options.add_argument('--dns-prefetch-disable')
    options.add_argument('--no-sandbox')
    options.add_argument('--lang=en-US')
    options.add_argument('--disable-setuid-sandbox')
    chrome_prefs = {
        'intl.accept_languages': 'en-US',
    }
    options.add_experimental_option('prefs', chrome_prefs)
    self.driver = webdriver.Chrome(options=options)

    # load cookies
    cookies = get_cookies()
    if cookies:
        self.driver.get(self.URL_PRIMEXBT)
        for cookie in cookies:


            self.driver.add_cookie(cookie)

标签: pythonseleniumauthenticationselenium-chromedriver

解决方案


默认情况下 - 一个新的 ChromeDriver 会话会创建一个新的配置文件数据目录 - 因此您没有上一个会话的 cookie。我建议:

  1. 使用包含您的授权 cookie 的配置文件数据启动 WebDriver
options.add_argument('user-data-dir')
  1. 通过直接 http 调用/API 调用进行授权,绕过 WebDriver(以加快测试速度) - 并将响应 cookie 传递给 WebDriver
  2. 或存储授权 cookie 并加载它们 - 例如使用此解决方案: 如何使用 Python + Selenium WebDriver 保存和加载 cookie

推荐阅读