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)
相关推荐
SaleCoder44 分钟前
用Python构建机器学习模型预测股票趋势:从数据到部署的实战指南
开发语言·python·机器学习·python股票预测·lstm股票模型·机器学习股票趋势
技术猿188702783517 小时前
实现“micro 关键字搜索全覆盖商品”并通过 API 接口提供实时数据(一个方法)
开发语言·网络·python·深度学习·测试工具
烛阴7 小时前
为什么你的Python项目总是混乱?层级包构建全解析
前端·python
三金C_C7 小时前
asyncio 与 uvloop
python·异步·asyncio
放飞自我的Coder7 小时前
【colab 使用uv创建一个新的python版本运行】
开发语言·python·uv
黎茗Dawn8 小时前
连接new服务器注意事项
linux·python
LJianK18 小时前
Java和JavaScript的&&和||
java·javascript·python
天天爱吃肉821810 小时前
效率提升新范式:基于数字孪生的汽车标定技术革命
python·嵌入式硬件·汽车
lemon_sjdk11 小时前
Java飞机大战小游戏(升级版)
java·前端·python
格鸰爱童话11 小时前
python+selenium UI自动化初探
python·selenium·自动化