【问题标题】:Relaxing Chrome's CSP while running tests (webdriver) (Content-Security-policy)在运行测试时放宽 Chrome 的 CSP (webdriver) (Content-Security-policy)
【发布时间】:2019-04-17 15:45:40
【问题描述】:

我正在尝试在使用 proctractor(webdriver、chromedriver)运行测试时放松 Chrome 的 CSP。

所以解决方案可以是

  1. 根据我的搜索结果,类似“--disable-csp”的标志不存在。
  2. webdriver/protractor 的设置。

我找不到任何解决方案,只能设置一个过滤标头的代理。

有什么想法吗?

【问题讨论】:

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


    【解决方案1】:

    目前没有原生选项,但您可以使用扩展禁用 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)
    

    【讨论】:

      【解决方案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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-01
        • 2021-06-02
        • 1970-01-01
        • 2018-03-06
        • 1970-01-01
        • 2022-01-03
        • 1970-01-01
        • 2017-08-05
        相关资源
        最近更新 更多