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

能否在已登录的浏览器会话中运行Cypress执行自动化操作?

解决Cypress复用手动登录会话的方案

方案1:复用Cypress受控浏览器实例

这是最直接的方式,让Cypress在你手动登录后的浏览器里运行测试:

  • 打开终端,运行命令 cypress open 启动Cypress图形界面
  • 在界面中选择常用浏览器(比如Chrome),点击「Open in Chrome」,此时会打开一个Cypress控制的空白浏览器窗口
  • 在这个窗口里手动访问目标网站,完成登录流程(包括手动过recaptcha)
  • 回到Cypress界面,选择你的评论自动化测试脚本运行,测试会直接复用当前浏览器的登录会话,不会清除存储

方案2:导出登录后的Cookie与LocalStorage,在测试中导入

如果不想每次都手动打开浏览器,可以先保存登录状态,再在测试中自动恢复:

  1. 手动登录并导出数据
    • 用普通浏览器登录目标网站,打开开发者工具(F12)
    • 切换到「Application」面板,找到「Cookies」和「Local Storage」,把对应网站下的所有数据导出为JSON格式(可手动复制或用浏览器辅助插件)
  2. 在Cypress测试中导入数据
    在测试的前置钩子中添加代码,导入保存的登录状态:
    beforeEach(() => {
      // 导入Cookie,替换成你导出的Cookie数组
      const savedCookies = [
        { name: 'session_id', value: 'xxx', domain: '目标网站域名', path: '/' },
        // 其他必要Cookie...
      ]
      cy.setCookies(savedCookies)
    
      // 导入LocalStorage,替换成你导出的LocalStorage对象
      const savedLocalStorage = {
        'auth_token': 'xxx',
        // 其他必要存储项...
      }
      cy.window().then(window => {
        Object.entries(savedLocalStorage).forEach(([key, value]) => {
          window.localStorage.setItem(key, value)
        })
      })
    
      // 访问目标网站,此时应该已经处于登录状态
      cy.visit('目标网站地址')
    })
    
    注意:要确保导出的Cookie包含正确的domain和path属性,否则无法生效;LocalStorage要保留所有和登录状态相关的字段。

注意事项

  • 目标网站可能有会话过期机制,保存的登录状态可能过一段时间就失效,需要重新导出
  • 频繁的自动化评论可能触发网站的反爬规则,导致账号被限制或封禁,请谨慎操作

内容的提问来源于stack exchange,提问作者gitam gadtaula

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 07:05:17