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

Cypress无法弹出登录窗口直接返回401 Unauthorized问题求助

解决Cypress无法触发Windows集成认证窗口的问题

问题根源

Cypress默认会通过自身代理转发所有浏览器请求,所以你看到请求地址是127.0.0.1:49898(Cypress的代理端口),而手动启动的浏览器直接连接目标服务器10.20.120.40:443。这种代理机制会干扰Windows集成认证的触发逻辑,导致无法弹出登录窗口,直接返回401。

解决方案:让Cypress以手动浏览器的环境启动

通过修改Cypress配置,关闭代理并调整浏览器启动参数,让浏览器直接连接目标服务器,就能触发认证窗口,进而配合AutoIT脚本输入凭证。

1. 修改Cypress配置文件(cypress.config.js)

添加以下配置,禁用Cypress代理并配置浏览器允许集成认证:

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

module.exports = defineConfig({
  e2e: {
    baseUrl: 'https://example.com',
    // 跳过Cypress对目标域名的代理注入,让浏览器直接发起请求
    experimentalSkipDomainInjection: true,
    // 视情况关闭跨域安全限制(如果目标站点有跨域需求)
    chromeWebSecurity: false,
    setupNodeEvents(on, config) {
      // 自定义浏览器启动参数
      on('before:browser:launch', (browser, launchOptions) => {
        if (browser.family === 'chromium' && browser.name !== 'electron') {
          // 禁用浏览器代理,直接连接目标服务器
          launchOptions.args.push('--no-proxy-server');
          // 允许对目标域名进行NTLM/Kerberos认证
          launchOptions.args.push('--auth-server-whitelist=example.com');
          launchOptions.args.push('--auth-negotiate-delegate-whitelist=example.com');
        }
        return launchOptions;
      });

      // 添加任务用于调用AutoIT脚本
      const { exec } = require('child_process');
      on('task', {
        runAutoIT() {
          return new Promise((resolve) => {
            // 替换为你的AutoIT脚本路径
            exec('C:/path/to/your/login_script.exe', (error) => {
              resolve(!error);
            });
          });
        },
      });
    },
  },
});

2. 调整测试脚本

在访问页面后调用AutoIT任务,自动处理登录窗口:

cy.visit('/Booking/lists');
// 等待登录窗口弹出(可根据实际情况调整等待时间)
cy.wait(1000);
// 执行AutoIT脚本输入凭证
cy.task('runAutoIT');

3. 验证效果

启动Cypress运行测试,查看浏览器的网络请求,确认请求已直接发送到10.20.120.40:443,此时Windows集成认证窗口会正常弹出,AutoIT脚本也能正常识别并输入凭证。

注意事项

  • 不同版本的Chrome/Edge可能对认证参数有细微调整,若窗口仍不弹出,可查阅对应浏览器的官方文档调整参数。
  • 若测试环境处于域内,需确保测试机器已加入正确的域,Kerberos认证才能正常触发。
  • 关闭Cypress代理后,请求拦截、修改等依赖代理的特性会失效,需根据测试需求权衡使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 14:32:22