尝试在 Selenium 中为 google 登录设置 cookie 时,在 ['Strict', 'Lax'] 中断言 cookie_dict['sameSite'] 出现断言错误

Mub*_*Ali 4 python selenium setcookie selenium-chromedriver selenium-webdriver

with Chrome() as driver:
    driver.get(notebooks[0])

    for cookie in pickle.load(open('cookies.pkl', 'rb')):
        driver.add_cookie(cookie)
Run Code Online (Sandbox Code Playgroud)

我首先通过手动登录转储cookie,但在设置它们时出现此错误。

Mub*_*Ali 8

找到答案了!

发现 google 不允许发送设置为“无”的“sameSite”cookie

由于当我从站点保存“sameSite”cookie时,它被设置为“无”,因此将其设置为“无”发送违反了谷歌的政策,导致断言它应该是“严格”或“宽松”

这是解决问题的代码

for cookie in pickle.load(open('cookies.pkl', 'rb')):
    if 'sameSite' in cookie:
        if cookie['sameSite'] == 'None':
            cookie['sameSite'] = 'Strict'
    driver.add_cookie(cookie)
Run Code Online (Sandbox Code Playgroud)