在 运行 测试(网络驱动程序)时放宽 Chrome 的 CSP (Content-Security-policy)
Relaxing Chrome's CSP while running tests (webdriver) (Content-Security-policy)
我正在尝试放松 Chrome 的 CSP,同时 运行 使用 proctractor(webdriver、chromedriver)进行测试。
所以解决方案可以是
- 根据我的搜索结果,像“--disable-csp”这样的标志不存在。
- webdriver/protractor 的设置。
我找不到任何解决方案,只能设置一个过滤 header 的代理。
有什么想法吗?
目前没有本机选项,但您可以使用扩展禁用 CSP。
步骤:
- 下载扩展Disable Content-Security-Policy
- 另存为
.zip
,因为需要修改才能在启动时启用"disable CSP"
- 解压文件或使用 Winrar 双击文件
background.js
进行编辑
- 将
var isCSPDisabled = false;
更改为true
- 保存更改。
代码
chrome_options = Options()
chrome_options.add_extension('path/to/disableCSP.zip') # or disableCSP.xpi
driver = webdriver.Chrome(chrome_options=chrome_options)
我更新了@ewwink 的回答
- 转到扩展开发者的网站Disable CSP github
- 下载 zip 格式的扩展代码
- 解压并修改 background.js 文件:
var isCSPDisabled = function (tabId) {
return true; // disabledTabIds.includes(tabId);
};
- 在 Chrome 中转到:
... -> 工具 -> 扩展 -> 激活开发者模式 -> 打包扩展 ...
选择修改后的文件夹作为根目录 -> 将字段:private key file 留空 -> 这将在扩展文件夹旁边创建一个 .crx 文件,以及一个私钥,就好像它是开发者
- 像这样使用生成的 crx 文件:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_extension("/path/to/chrome-csp-disable-master.crx")
driver = webdriver.Chrome(executable_path="/path/to/chromedriver", options=chrome_options)
driver.get("https://www.google.com/")
来源:Load chrome extension using selenium
我正在尝试放松 Chrome 的 CSP,同时 运行 使用 proctractor(webdriver、chromedriver)进行测试。
所以解决方案可以是
- 根据我的搜索结果,像“--disable-csp”这样的标志不存在。
- webdriver/protractor 的设置。
我找不到任何解决方案,只能设置一个过滤 header 的代理。
有什么想法吗?
目前没有本机选项,但您可以使用扩展禁用 CSP。
步骤:
- 下载扩展Disable Content-Security-Policy
- 另存为
.zip
,因为需要修改才能在启动时启用"disable CSP" - 解压文件或使用 Winrar 双击文件
background.js
进行编辑 - 将
var isCSPDisabled = false;
更改为true
- 保存更改。
代码
chrome_options = Options()
chrome_options.add_extension('path/to/disableCSP.zip') # or disableCSP.xpi
driver = webdriver.Chrome(chrome_options=chrome_options)
我更新了@ewwink 的回答
- 转到扩展开发者的网站Disable CSP github
- 下载 zip 格式的扩展代码
- 解压并修改 background.js 文件:
var isCSPDisabled = function (tabId) {
return true; // disabledTabIds.includes(tabId);
};
- 在 Chrome 中转到: ... -> 工具 -> 扩展 -> 激活开发者模式 -> 打包扩展 ... 选择修改后的文件夹作为根目录 -> 将字段:private key file 留空 -> 这将在扩展文件夹旁边创建一个 .crx 文件,以及一个私钥,就好像它是开发者
- 像这样使用生成的 crx 文件:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_extension("/path/to/chrome-csp-disable-master.crx")
driver = webdriver.Chrome(executable_path="/path/to/chromedriver", options=chrome_options)
driver.get("https://www.google.com/")
来源:Load chrome extension using selenium