使用 Selenium 时 Cookie 不起作用

Cookies don't work when using Selenium

我尝试使用 cookie 自动登录。 所以我在通过我的帐户成功登录后保存了 cookie。 但是,每次我尝试读取文件并添加 cookie 以获取 URL。它只是将我引导至 URL。退出代码将为 0。

我不知道为什么。能否请你帮忙?谢谢

这是我的代码:

import time
from selenium import webdriver
import pickle

def save_cookies(driver,path):
    with open(path,'wb') as filehandler:
        pickle.dump(driver.get_cookies(),filehandler)

def load_cookie(driver,path):
    with open(path,'rb') as cookiesfile:
        cookies=pickle.load(cookiesfile)
        for cookie in cookies:
            # del cookie['domain']
            print(cookie)
            driver.add_cookie(cookie)

browser = webdriver.Chrome()
url="https://mail.qq.com/"
path="D:\download\test.txt"
browser.get(url)
load_cookie(browser,path)
time.sleep(2)
browser.get(url)
print(browser.get_cookies)

当我从 cookies 打印 cookie 时,cookies 会像这样:

{'expiry': 2147385600, 'httpOnly': False, 'name': 'pgv_pvi', 'path': '/', 'secure': False, 'value': '82039xxx'}
{'expiry': 1536315518, 'httpOnly': False, 'name': 'ptui_loginuin', 'path': '/', 'secure': False, 'value': '441984694@qq.com'}
{'httpOnly': False, 'name': 'pgv_si', 'path': '/', 'secure': False, 'value': 's6206319xxx'}
{'httpOnly': False, 'name': 'ptisp', 'path': '/', 'secure': False, 'value': 'cm'}

我试过在代码末尾打印cookies,但是好像加不上。为什么?我错过了什么吗?

为此使用 chrome 选项用户数据目录。 cookie 始终被存储并可以从那里使用。这种方法比代码更快。

chrome_options = Options()
chrome_options.add_argument("user-data-dir=selenium") 
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get("www.protonmail.com")