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)
相关推荐
m0_7020365317 分钟前
mysql如何导出特定条件的查询数据_使用mysqldump加where参数
jvm·数据库·python
m0_733565461 小时前
bootstrap怎么实现响应式的文章瀑布流布局
jvm·数据库·python
m0_463672201 小时前
Golang如何用火焰图分析性能_Golang火焰图教程【对比】
jvm·数据库·python
knight_9___1 小时前
大模型project面试4
人工智能·python·深度学习·算法·面试·agent
m0_591364731 小时前
Go语言怎么做链路追踪_Go语言分布式链路追踪教程【精选】
jvm·数据库·python
m0_463672201 小时前
HTML函数工具是否支持雷蛇等游戏外设_RGB同步汇总【汇总】
jvm·数据库·python
zkkkkkkkkkkkkk1 小时前
python使用celery实现异步任务
redis·python·rabbitmq·rocketmq
iAm_Ike2 小时前
如何用 IndexedDB 存储从 API 获取的超大列表并实现二级索引
jvm·数据库·python
Land03292 小时前
指纹浏览器自动化集成方案|多浏览器RPA适配实战记录
运维·人工智能·爬虫·python·selenium·自动化·rpa
X56612 小时前
CSS Flex布局如何让特定子元素不参与缩放_设置flex-shrink- 0的实战技巧
jvm·数据库·python