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

Cypress自动化谷歌登录时触发RPC Executor Service错误求助

Cypress测试谷歌登录:Chromium浏览器报错的解决方法

你的问题是谷歌反自动化机制检测到了Cypress的Chromium(Chrome/Edge)浏览器测试环境,从而阻止登录,Firefox未触发该检测所以正常运行。以下是实用的解决办法:

1. 配置浏览器启动参数,隐藏自动化特征

在cypress.config.js中添加Chromium系浏览器的启动参数,移除谷歌能识别的自动化标记:

const { defineConfig } = require("cypress");

module.exports = defineConfig({
  e2e: {
    setupNodeEvents(on, config) {
      on('before:browser:launch', (browser, launchOptions) => {
        if (browser.family === 'chromium' && browser.name !== 'electron') {
          // 禁用自动化控制标记
          launchOptions.args.push('--disable-blink-features=AutomationControlled');
          // 禁用 compositor 特性,减少环境差异
          launchOptions.args.push('--disable-features=VizDisplayCompositor');
          // 可选:模拟真实用户UA,避免被识别为自动化浏览器
          launchOptions.args.push('--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36');
          return launchOptions;
        }
      });
    },
  },
});

2. 用cy.origin()正确处理跨域登录

谷歌登录属于跨域操作,Cypress 12+推荐使用cy.origin()切换上下文,避免环境特征暴露:

// 访问你的应用主页
cy.visit('/');
// 点击谷歌登录按钮
cy.get('[data-testid="google-login-btn"]').click();

// 切换到谷歌账号登录页面的上下文
cy.origin('https://accounts.google.com', () => {
  cy.get('input[type="email"]').type('你的测试谷歌账号');
  cy.get('#identifierNext').click();
  cy.get('input[type="password"]').type('你的测试账号密码');
  cy.get('#passwordNext').click();
});

// 返回应用上下文,验证登录状态
cy.get('[data-testid="user-avatar"]').should('be.visible');

3. 调整测试谷歌账号的安全设置

  • 关闭测试账号的两步验证(2FA),避免额外的验证步骤干扰自动化。
  • 在谷歌账号的「安全性」设置中,启用「不太安全的应用访问」(仅用于测试账号,禁止在生产账号操作),或生成应用专用密码。

4. 升级Cypress到最新稳定版

新版本Cypress会优化Chromium浏览器的兼容性,修复部分环境特征暴露问题:

npm install cypress@latest --save-dev

注意

谷歌的反自动化规则会持续更新,上述方法可能随时间失效,需要根据实际情况调整参数。务必使用专门的测试账号,不要用生产环境账号进行测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 11:45:15