2、Selenium -- Cookies

2020-04-24  本文已影响0人  波罗的海de夏天

cookies:可以简单理解为“身份信息”;

备注:下面代码主要测试了 cookies 的保存与读入

# -*- coding:utf-8 -*-

from selenium import webdriver
import time
import os
import json

# 登录
def login():
    driver.get('https://www.baidu.com/')
    driver.maximize_window()
    # 模仿登录
    driver.find_element_by_link_text('登录').click()
    time.sleep(1)
    driver.find_element_by_id('TANGRAM__PSP_10__footerULoginBtn').click()
    time.sleep(1)
    driver.find_element_by_id('TANGRAM__PSP_10__userName').send_keys('152----xxxx')
    time.sleep(1)
    driver.find_element_by_id('TANGRAM__PSP_10__password').send_keys('*******')
    time.sleep(1)
    driver.find_element_by_id('TANGRAM__PSP_10__submit').click()
    time.sleep(1)

# 保存cookies
def save_cookies():
        project_path = os.getcwd()
        file_path = project_path + '/cookies/'
        # 检查文件夹
        if not os.path.exists(file_path):
            os.mkdir(file_path)
        # 存储cookies信息
        cookies = driver.get_cookies()
        print('---- cookies:', cookies)
        with open(file_path + 'test_cookies', 'w', encoding='utf-8') as c:
            json.dump(cookies, c)

# 使用当前存储的cookies信息登录
def get_url_with_cookies():
    project_path = os.getcwd()
    file_path = project_path + '/cookies/'
    cookies_file = file_path + 'test_cookies'
    # 读取cookies信息
    test_cookies_file = open(cookies_file, 'r', encoding='utf-8')
    test_cookies_str = test_cookies_file.readline()
    # 加载cookies信息, 转成json格式
    test_cookies_dict = json.loads(test_cookies_str, encoding='utf-8')
    print('---- json dict:', test_cookies_dict)
    test_cookies_file.close()
    time.sleep(1)
    # 清除cookies
    driver.get('https://www.baidu.com/')
    driver.delete_all_cookies()
    time.sleep(1)
    # 读入保存的cookies验证
    for cookie in test_cookies_dict:
        if 'expiry' in cookie:
            del cookie['expiry']
        print(cookie)
        driver.add_cookie(cookie)

    time.sleep(1)
    driver.get('https://www.baidu.com/')


if __name__ == '__main__':
    # 驱动Chrome浏览器
    driver = webdriver.Chrome('/Users/****/Desktop/git/AI_Lesson/chromedriver')
    '''
    1、登录 + 保存cookies
    '''
    # 登录
    login()
    # 保存cookies
    save_cookies()
    '''
    2、退出登录后,测试
    '''
    driver.get('https://www.baidu.com/')
    '''
    3、清除cookies,读入保存的cookies信息,验证cookies的"身份信息"
    '''
    # 使用当前存储的cookies信息登录
    get_url_with_cookies()

    time.sleep(5)
    # 关闭浏览器
    driver.quit()




上一篇下一篇

猜你喜欢

热点阅读