You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Selenium Java保存Cookie,避免自动化测试重复谷歌认证

解决谷歌认证Cookie持久化问题

核心思路

谷歌认证的会话依赖核心Cookie(如SID、HSID),只要在新测试实例中载入已登录状态的完整Cookie集合,就能跳过重复认证。但要注意,谷歌Cookie会绑定浏览器环境、IP等信息,需尽量保持测试环境一致性,同时Cookie存在有效期,需定期更新。

针对Selenium的实现步骤

  1. 首次登录并保存Cookie
    完成一次谷歌认证后,将当前会话Cookie导出到本地文件:
from selenium import webdriver
import json

driver = webdriver.Chrome()
# 访问开发URL并完成谷歌认证
driver.get("你的开发环境URL")
# 等待登录完成后,获取所有Cookie
cookies = driver.get_cookies()
# 保存到本地JSON文件
with open("google_auth_cookies.json", "w") as f:
    json.dump(cookies, f)
driver.quit()
  1. 后续测试载入Cookie
    启动新浏览器实例时,先加载保存的Cookie,再访问目标URL:
from selenium import webdriver
import json

driver = webdriver.Chrome()
# 必须先访问谷歌账号域名,否则无法跨域添加Cookie
driver.get("https://accounts.google.com")
# 读取并导入Cookie
with open("google_auth_cookies.json", "r") as f:
    cookies = json.load(f)
    for cookie in cookies:
        # 移除Selenium不兼容的字段(如sameSite)
        if "sameSite" in cookie:
            del cookie["sameSite"]
        driver.add_cookie(cookie)
# 访问开发URL,此时已处于登录状态
driver.get("你的开发环境URL")

提示:若Cookie添加失败,检查Cookie的domain字段是否与当前访问域名匹配。

针对Playwright的实现步骤

Playwright自带会话持久化功能,无需手动处理Cookie:

  1. 创建并保存持久化会话
    首次运行时创建带存储目录的上下文,完成登录后会话数据自动保存:
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    # 指定会话存储目录,启动浏览器完成认证
    browser = p.chromium.launch_persistent_context("./google_session_store", headless=False)
    page = browser.new_page()
    page.goto("你的开发环境URL")
    # 手动完成谷歌认证后关闭浏览器
    browser.close()
  1. 复用已保存的会话
    后续测试直接加载存储的上下文,跳过登录流程:
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    # 加载已保存的会话上下文
    browser = p.chromium.launch_persistent_context("./google_session_store", headless=True)
    page = browser.new_page()
    page.goto("你的开发环境URL")
    # 直接执行测试逻辑,无需再次认证
    # ...
    browser.close()

优势:自动处理Cookie、LocalStorage等所有会话数据,兼容性更强。

关键注意事项

  • Cookie有效期:谷歌会话Cookie有效期通常为几小时到几天,需定期重新生成保存的会话文件。
  • 环境一致性:保持测试用浏览器版本、用户代理、IP地址不变,否则谷歌可能触发二次验证。
  • 验证码规避:首次登录尽量使用真人验证,保存会话后复用;避免短时间内频繁创建新实例触发风控。

内容的提问来源于stack exchange,提问作者Ivaylo Ilchev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 00:57:13