【自动化】WebUI自动化通过读取用户数据的方式启动浏览器实现绕过相关登录验证的方法。

背景说明

我相信做自动化测试或者实现UI自动化相关功能的同学肯定碰到过,每次写好脚本执行时都是默认打开一个 "新"的浏览器,我的意思是就跟刚下载的浏览器一样。而不是平时日常使用着的浏览器的状态,日常使用浏览器时只要近期登录过,那么不久再打开是不需要重新登录的。(我这只是简单举例讲下背景)

举例说明--使用Playwright的实践方法

使用 Playwright 和 Python 来实现通过指定用户数据目录启动浏览器的功能,可以避免每次执行脚本时都需要重新登录和复杂验证。

以下是详细步骤和示例代码

1. 先手动启动浏览器并登录

首先,手动启动浏览器并登录需要的账号,完成所有必要的验证,然后关闭浏览器。用户数据目录通常位于以下位置:

Windows: C:\Users\<YourUsername>\AppData\Local\Google\Chrome\User Data

macOS: /Users/<YourUsername>/Library/Application Support/Google/Chrome

Linux: /home/<YourUsername>/.config/google-chrome

2. 使用 Playwright 指定用户数据目录启动浏览器

以下是使用 Python 和 Playwright 的示例代码,用于启动一个带有指定用户数据目录的浏览器会话:

python 复制代码
from playwright.sync_api import sync_playwright

def run(playwright):
    # 指定用户数据目录路径
    user_data_dir = '/path/to/your/chrome/user/data'
    
    # 启动浏览器并指定用户数据目录
    browser = playwright.chromium.launch_persistent_context(user_data_dir, headless=False)

    # 打开新页面
    page = browser.new_page()

    # 导航到目标网站
    page.goto('https://example.com')

    # 你可以在这里继续你的自动化操作

    # 关闭浏览器
    # browser.close() # 持续会话不建议每次关闭,除非有特殊需要

with sync_playwright() as playwright:
    run(playwright)

执行脚本,你就会发现这次直接打开的浏览器是携带前面手动登录后的登录状态的了~

那么除了playwright外,用selenium也是差不多意思,可以实践实践看看~

注意事项

用户数据目录: 确保路径正确,并且你的脚本有权限读取该目录。

浏览器兼容性: 不同浏览器的用户数据目录路径可能不同,上述示例适用于 Chromium 和 Chrome。

如果使用 Firefox 或 WebKit,路径可能会有所不同。

浏览器版本: 确保你手动操作时使用的浏览器版本与 Playwright 使用的版本一致,以避免兼容性问题。

通过这种方式,你可以在启动浏览器时保留之前的会话信息,包括已登录的账号状态,从而避免每次脚本执行都需要重新登录的复杂验证过程。

相关推荐
我是苏苏2 小时前
C#高级:使用ConcurrentQueue做一个简易进程内通信的消息队列
java·windows·c#
shizhenshide3 小时前
社交媒体自动化:批量注册/发帖的验证码难题一站式解决
自动化·php·媒体·验证码·ezcaptcha
私人珍藏库6 小时前
[Windows] EndNote 2025.1.19456 汉化版
windows·工具·软件·win·汉化
love530love6 小时前
告别环境崩溃:ONNX 与 Protobuf 版本兼容性指南
人工智能·windows·python·onnx·stablediffusion·comfyui·protobuf
weixin_516023076 小时前
SRIM的安装
windows
AI殉道师9 小时前
Vercel 重磅发布 agent-browser:AI Agent 浏览器自动化的新纪元来了
运维·人工智能·自动化
REDcker9 小时前
Puppeteer 与 Selenium 对比分析
爬虫·selenium·自动化·浏览器·puppeteer
我的xiaodoujiao9 小时前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 40--完善优化 Allure 测试报告显示内容
python·学习·测试工具·pytest
我的大老婆9 小时前
【Windows 共享打印机纯干货】跨路由器/跨网段访问打印机、两条宽带两个路由器共享一台打印机、外网/局域网外访问DMZ打印机、192.168.1.107 主机访问192.168.2.105 打印机
windows·经验分享·计算机网络·路由器·共享打印机·跨网段共享打印机·dmz主机
我的xiaodoujiao9 小时前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 41--自定义定制化展示 Allure 测试报告内容
python·学习·测试工具·pytest