在运行测试时放宽Chrome的CSP(网络驱动程序)(内容安全策略)

时间:2018-11-14 15:59:42

标签: javascript selenium webdriver selenium-chromedriver content-security-policy

我正在尝试使用proctractor(网络驱动程序,chromedriver)运行测试时放松Chrome的CSP。

因此解决方案可以是

  1. 根据我的搜索结果,不存在像“ --disable-csp”这样的标记。
  2. 用于webdriver /量角器的设置。

除了设置用于过滤标头的代理外,我找不到任何解决方案。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

当前没有本机选项,但是您可以使用扩展名禁用CSP。

步骤:

  1. 下载扩展程序Disable Content-Security-Policy
  2. 将其另存为.zip,因为需要对其进行修改以在启动时启用“禁用CSP”
  3. 提取文件,或者使用Winrar双击文件background.js进行编辑
  4. var isCSPDisabled = false;更改为true
  5. 保存更改。

代码

chrome_options = Options()
chrome_options.add_extension('path/to/disableCSP.zip') # or disableCSP.xpi
driver = webdriver.Chrome(chrome_options=chrome_options)

答案 1 :(得分:2)

我更新@ewwink的答案

  1. 转到扩展程序开发人员Disable CSP github的网站
  2. 下载zip格式的扩展代码
  3. 解压缩并修改background.js文件,方法是:
    var isCSPDisabled = function (tabId) {
        return true; // disabledTabIds.includes(tabId);
    };
  1. 在Chrome中转到: ...->工具->扩展->激活开发人员模式->包扩展... 选择修改后的文件夹作为根目录->将该字段保留:私钥文件为空白->这将在扩展文件夹旁边创建一个.crx文件,以及一个私钥,就好像是开发人员一样
  2. 像这样使用生成的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