Javascript 在Firefox中录制并稍后播放DOM更改?
背景: 我们有基于web的产品和一套不断增长的自动化Selenium测试,这些测试在一个连续集成系统上运行,用于每次提交。有时测试失败,有时很难找出发生了什么 以前我们每次跑步都会录制并保存一段视频(使用recordMyDesktop),但这需要更多的CPU和磁盘空间 问题:Javascript 在Firefox中录制并稍后播放DOM更改?,javascript,firefox,testing,dom,selenium,Javascript,Firefox,Testing,Dom,Selenium,背景: 我们有基于web的产品和一套不断增长的自动化Selenium测试,这些测试在一个连续集成系统上运行,用于每次提交。有时测试失败,有时很难找出发生了什么 以前我们每次跑步都会录制并保存一段视频(使用recordMyDesktop),但这需要更多的CPU和磁盘空间 问题: 是否有Firefox插件或类似工具用于记录DOM更改,然后在另一台机器上直观地回放这些更改?您可以尝试在DOM修改事件上添加事件侦听器,然后按照以下方式记录它们: document.addEventListener('DO
是否有Firefox插件或类似工具用于记录DOM更改,然后在另一台机器上直观地回放这些更改?您可以尝试在DOM修改事件上添加事件侦听器,然后按照以下方式记录它们:
document.addEventListener('DOMNodeInserted', function(e) {someLoggingFunction(e);});
如果记录侦听器传递的节点的父元素,则应该能够回放任何修改
文档对象模型事件:
这不是一个时间轴样式的回放,可能是firebug的Firediff扩展:
它可以跟踪所有dom更改,并允许保存dom状态的快照,同时将历史记录还原到以前的状态。这是一个付费网格,但您有没有研究过?它们支持屏幕截图和测试的视频播放。我们以前在Ubuntu上使用过recordMyDesktop,但也注意到它过于CPU密集
在(基于云的Selenium网格)上,我们现在使用ffmpeg和x11grab,这在CPU方面要好得多。设置起来也很容易。我们已经简要介绍了它,但公司政策阻止我们公开公开或将代码发送到其他地方,因此遗憾的是,目前这不是一个选项。SauceLabs有一个名为SauceConnect的Java隧道,可以保护所有流量,并可以在私人环境中运行测试。您可以在以下位置阅读更多内容:如您所述,记录更改非常容易。这是(视觉)回放的变化是棘手的部分。构建我们自己的工具是一种选择,但不是我们的首选。