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

如何以另一Windows用户身份通过PlayWright在Chrome中执行测试?

解决Playwright以指定Windows用户身份运行Chrome的问题

核心思路

无需切换VS Code的运行身份,直接让Playwright调用runas.exe启动目标用户身份的Chrome实例,即可在测试流程中复用该权限环境。

具体实现步骤

  1. 修改Playwright配置文件
    在playwright.config.js/playwright.config.ts中,自定义Chromium的启动命令,通过runas.exe指定以'B123'身份启动Chrome:

    TypeScript配置示例:

    import { defineConfig, devices } from '@playwright/test';
    
    export default defineConfig({
      use: {
        browserName: 'chromium',
        // 指定runas作为启动程序
        executablePath: 'C:\\Windows\\System32\\runas.exe',
        args: [
          '/savecred',
          '/user:prod\\B123',
          '"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe" --remote-debugging-port=9222'
        ],
      },
    });
    

    注:添加--remote-debugging-port=9222是为了让Playwright能正常连接到该Chrome实例,保证测试通信。

  2. 首次运行验证身份
    第一次执行测试时,系统会弹出'B123'的密码输入框,输入正确密码后,/savecred参数会将凭据保存到系统,后续运行无需再次输入。

  3. 避免实例冲突
    为防止不同用户的Chrome数据互相干扰,可在启动参数中指定独立的用户数据目录:
    在args数组里追加--user-data-dir="C:\\Temp\\B123ChromeProfile"即可。

替代方案:通过批处理文件调用

如果直接在配置中写参数易出错,可先创建批处理文件(如StartChromeAsB123.bat):

@echo off
C:\Windows\System32\runas.exe /savecred /user:prod\B123 "C:\Program Files\Google\Chrome\Application\chrome.exe --remote-debugging-port=9222 --user-data-dir=C:\Temp\B123ChromeProfile"

再在Playwright配置中指定该批处理为启动路径:

executablePath: 'C:\\Your\\Path\\StartChromeAsB123.bat',

注意事项

  • 确保当前登录用户'A123'拥有执行runas.exe并调用'B123'权限的系统权限,避免被UAC拦截。
  • 若/savecred未生效,可检查Windows凭据管理器中是否已保存'B123'的凭据,或重新手动输入一次密码触发保存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 19:13:09