无管理员权限的Mac上TestCafe运行权限问题求助
我正尝试在工作用Mac上部署TestCafe测试,但每次运行测试时,都会收到TestCafe需要屏幕录制权限的提示:
TestCafe requires permission to record the screen. Open 'System Preferences > Security & Privacy > Privacy > Screen Recording' and check 'TestCafe Browser Tools' in the application list.
通常我会通过系统偏好设置开启该权限,但我的设备被锁定,没有管理员权限操作。我试过v1.18.0及最新版本,也尝试添加--disable-screenshots参数,但毫无效果。
执行npm run test时收到报错:
TestCafe requires permission to record the screen. Open 'System Preferences > Security & Privacy > Privacy > Screen Recording' and check 'TestCafe Browser Tools' in the application list. Press any key to retry. ERROR UnableToAccessScreenRecordingAPIError: The find-window process cannot access the Screen Recording API. at runFindWindowBinary (~/dev/e2e-testing/node_modules/testcafe-browser-tools/src/api/find-window.js:36:19) at Object.default_1 (~/dev/e2e-testing/node_modules/testcafe-browser-tools/src/api/find-window.js:43:15) at checkAuthentication (~/dev/e2e-testing/node_modules/testcafe/src/cli/authentication-helper.ts:28:26) at Object.authenticationHelper [as default] (~/dev/e2e-testing/node_modules/testcafe/src/cli/authentication-helper.ts:54:30) at Runner._checkRequiredPermissions (~/dev/e2e-testing/node_modules/testcafe/src/runner/index.js:551:27) at Runner._validateBrowsers (~/dev/e2e-testing/node_modules/testcafe/src/runner/index.js:305:13) at Runner._validateRunOptions (~/dev/e2e-testing/node_modules/testcafe/src/runner/index.js:462:9)
添加
--disable-window-management参数
这个参数会禁用TestCafe的窗口管理功能,从而绕过屏幕录制权限的检查。修改你的测试命令:testcafe chrome:headless tests/ --disable-window-management或者在
package.json的scripts里更新:"test": "testcafe chrome:headless tests/ --disable-window-management"设置环境变量跳过权限检查
在运行测试前设置环境变量TESTCAFE_DISABLE_SCREEN_RECORDING_PERMISSION_CHECK=1,可以直接跳过权限验证步骤:TESTCAFE_DISABLE_SCREEN_RECORDING_PERMISSION_CHECK=1 npm run test如果是zsh/bash环境,可以把这个变量加入
.zshrc/.bashrc配置文件,避免每次手动输入。降级到TestCafe v1.17.0版本
TestCafe从v1.18.0开始在macOS上要求屏幕录制权限来管理窗口,降级到v1.17.0可以避开这个要求:npm uninstall testcafe npm install testcafe@1.17.0 --save-dev
注意:使用--disable-window-management后,TestCafe无法自动调整浏览器窗口大小、定位窗口,测试中如果依赖这些功能可能会受影响;降级旧版本则可能错过后续的功能更新和bug修复,根据你的测试需求选择合适的方案。
内容的提问来源于stack exchange,提问作者Eric

