首页 > 解决方案 > 如何使用 testcafe 电子插件防止内容安全策略错误?

问题描述

尝试在 Testcafe 中运行我的电子应用程序时,我在控制台中遇到很多内容安全错误:

VM110 pagewrap.bundle.js:3 拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“default-src 'none'”。启用内联执行需要“unsafe-inline”关键字、哈希(“sha256-Z+HxFhVCHMznEI/lLsU2FT9krRiVCTm6bGApEd5HAtk=”)或随机数(“nonce-...”)。另请注意,'script-src' 未明确设置,因此 'default-src' 用作后备。

在 Linux 上使用不同的电子版本(4、6、7)进行了测试。(使用提供程序插件的 0.0.14 版本)我也尝试添加

<meta http-equiv="Content-Security-Policy" content="default-src 'unsafe-inline'; etc." />

只是为了测试,但它没有帮助

我什至不确定是否加载了正确的 mainWindowUrl,因为我只看到一个显示电子版本的黑色页面,而我的操作系统和 URLS 看起来像http://192.168.178.79:37961 ...

有没有办法调试 testcafe 的加载过程或任何提示如何防止这些错误?

标签: testingautomated-testselectroncontent-security-policytestcafe

解决方案


即使在 Electron 中运行测试时,TestCafe 也会模拟 Chrome 的内容安全策略。Chrome 和 Electron 策略之间的区别在于,Electron 将所有具有file:来源的请求视为same-domain当前页面也具有file:来源。Chrome 的政策更加严格:每个不同的文件路径都被视为不同的来源。不幸的是,在内容安全策略中实施此类更改可能需要很多时间。您可以使用issue #4208来跟踪我们更新安全策略的进度。


推荐阅读