使用Selenium时,Cookie不起作用

时间:2018-08-08 11:49:22

标签: python selenium cookies pickle

我尝试自动使用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)

cookie就像我从cookie中打印cookie时一样:

{'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'}

我试图在代码末尾打印cookie,但似乎无法添加它。为什么?我有想念吗?

1 个答案:

答案 0 :(得分:1)

为此使用镶边选项user-data-dir。 Cookies始终被存储,并且可以从那里使用。此方法比通过代码执行操作要快。

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