嗨,我已经在我的项目中实现了Selenoid,默认情况下,它将视频记录命名为“selenoid +浏览器会话ID”。mp4 ',我想将其更改为带有场景名称的时间戳。
以下是我到目前为止所做的:
def rename_video_files(scenario, failed = false)
Dir.glob("/end-to-end-test/test-reports/video-logs") do
File.rename("#{page.driver.browser.session_id}.mp4",
"#{Time.now.strftime('%Y-%m-%d_%H-%M-%S')}_#{scenario
.name}#{failed ? '-FAILED' : ''}.mp4"
.gsub(/[^0-9A-Za-z.\-]/, '_'))
end
钩子之后:
After('@ui') do |scenario|
rename_video = rename_video_files(scenario, failed = false)
logger.info "Recorded video name: #{rename_video}.mp4"
page.driver.quit
end
测试通过,但视频记录的名称保持不变。
新编辑:显然selenoid创建记录时,首先将其命名为'selenoidxxxx.mp4',并在测试完成后用session_id重命名它。mp4默认因此,我无法在after步骤中捕获带有session_id的文件名,因为它还没有重命名。
2条答案
按热度按时间zdwk9cvp1#
您必须在Dir中包含此扩展,然后重试
7vhp5slm2#
我找到了工作解决方案:
后续步骤:
rename_video_files方法: