首页 > 解决方案 > 在 Jenkins HTML Publisher 上播放视频时出现问题

问题描述

我正在使用 Testcafe 进行项目测试,并在我的项目中生成带有屏幕截图和视频的 HTML 报告。

当我尝试使用 HTML 发布者发布报告时,视频没有播放。当我通过浏览器在 Jenkins 代理中打开生成的 HTML 文件时,视频播放正常。不确定,为什么它不在 Jenkins HTML 发布者插件上播放。

我的 HTML 视频代码如下所示

<div class="row">
   <div class="column">
      <img id="myImg" class="errImage" src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAABAAAA" style="width:100%;">  
   </div>
   <div class="column">
      <video autoplay muted loop controls id="errorVideo" style="width:99%">
         <source src="C:\Program Files (x86)\Jenkins\workspace\Free style node test\e2e\artifacts\videos\Getting Started\My First Test\1.mp4" type="video/mp4">
      </video>
   </div>
</div>

我尝试配置以下内容安全策略

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "sandbox; default-src '';")

不确定是什么政策阻止视频在 Jenkins 发布者上播放。

有人可以帮助解决这个问题吗?提前致谢。

标签: seleniumjenkinsjenkins-pluginsui-automationtestcafe

解决方案


阻止您的视频播放的策略是 media-src == "none",派生自 default-src == 'none'(请参阅https://wiki.jenkins.io/display/JENKINS/Configuring+Content+Security+政策

看看https://github.com/jenkinsci/screenrecorder-plugin/blob/master/src/main/java/org/jenkinsci/plugins/screenrecorder/ScreenRecorderBuildWrapper.java中的解决方案,它可以为您工作:

String curCsp = System.getProperty("hudson.model.DirectoryBrowserSupport.CSP","");
if (!curCsp.contains("media-src"))
{
       System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", curCsp + ";media-src 'self';");
}

推荐阅读