美文网首页
2、Selenium -- Cookies

2、Selenium -- Cookies

作者: 波罗的海de夏天 | 来源:发表于2020-04-24 14:37 被阅读0次

    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()
    




    相关文章

      网友评论

          本文标题:2、Selenium -- Cookies

          本文链接:https://www.haomeiwen.com/subject/gdrfwhtx.html