Python + Selenium 处理浏览器Cookie

工作中遇到这么一个场景:自动化测试登录的时候需要输入动态验证码,由于某些原因,需要从一个已登录的机器上,复制cookie过来,到自动化这边绕过登录。

浏览器的F12里复制出来的cookie内容是文本格式的:

复制代码
uuid_tt_dd=10_29467992570-1686563381625-248671; log_Id_view=22; pluginId=kfkdboecolemdjodhmhmcibjocfopejo; pluginVersion=3.0.5; pluginUUID=10_28142568173-1689298498020-519600; p_uid=U010000;

这里需要把cookie文本处理为name和value格式的字典形式,这个是Selenium的driver.add_cookie(cookie)函数要求的格式:

python 复制代码
cookie = {"name":"uuid_tt_dd", "value":"10_29467992570-1686563381625-248671"}

上代码

python 复制代码
        # 首次打开页面
        self.driver.get(self.url)
        # 从浏览器F12中复制过来的cookie
        cookies_text = """
        uuid_tt_dd=10_29467992570-1686563381625-248671; log_Id_view=22; pluginId=kfkdboecolemdjodhmhmcibjocfopejo; pluginVersion=3.0.5; pluginUUID=10_28142568173-1689298498020-519600; p_uid=U010000;
        """
        # 处理字符串,构建cookie字典
        cookie_tmp_list = cookies_text.strip().split(";")
        cookie_list = []
        for cookie_tmp in cookie_tmp_list:
            cookie_value_list = cookie_tmp.strip().split("=")
            cookie_name = cookie_value_list[0]
            if len(cookie_value_list) ==1:
                cookie_value = ''
            else:
                cookie_value = cookie_value_list[1]
            cookie = {"name":cookie_name, "value":cookie_value}
            cookie_list.append(cookie)
        # 删除原有cookie
        self.driver.delete_all_cookies()
        # 循环添加新cookie
        for cookie in cookie_list:
            print(type(cookie))
            self.driver.add_cookie(cookie)
        cookies = self.driver.get_cookies()
        print(cookies)
        # 再次打开业务url页面,不会跳转到登录页面了
        self.driver.get(self.url)
        time.sleep(30)
相关推荐
之歆20 分钟前
Python-封装和解构-set及操作-字典及操作-解析式生成器-内建函数迭代器-学习笔记
笔记·python·学习
天天爱吃肉82181 小时前
ZigBee通信技术全解析:从协议栈到底层实现,全方位解读物联网核心无线技术
python·嵌入式硬件·物联网·servlet
Allen_LVyingbo2 小时前
Python常用医疗AI库以及案例解析(2025年版、上)
开发语言·人工智能·python·学习·健康医疗
智能砖头2 小时前
LangChain 与 LlamaIndex 深度对比与选型指南
人工智能·python
风逸hhh3 小时前
python打卡day58@浙大疏锦行
开发语言·python
烛阴4 小时前
一文搞懂 Python 闭包:让你的代码瞬间“高级”起来!
前端·python
JosieBook4 小时前
【Java编程动手学】Java中的数组与集合
java·开发语言·python
巴里巴气5 小时前
对selenium进行浏览器和驱动进行配置Windows | Linux
selenium·测试工具
Gyoku Mint5 小时前
深度学习×第4卷:Pytorch实战——她第一次用张量去拟合你的轨迹
人工智能·pytorch·python·深度学习·神经网络·算法·聚类
郭庆汝11 小时前
pytorch、torchvision与python版本对应关系
人工智能·pytorch·python