视频流 html5 播放器。如何自动化滑动搜索和音量控制

Posted

技术标签:

【中文标题】视频流 html5 播放器。如何自动化滑动搜索和音量控制【英文标题】:Video streaming html5 player. how to automate sliding seek & volume controls 【发布时间】:2015-05-22 14:31:40 【问题描述】:

我在 Ruby 中使用 Webdriver,我想在 iFrame 中验证 html5 dash-cenc 播放器的搜索和音量滑块控件。

这个想法是只检查播放器是否接受了提前搜索“x”时间的命令,或者转到播放的开头,然后搜索到一半的搜索进度条。问题是手动测试播放器,“箭头键”不起作用,所以寻找播放的唯一方法是在搜索栏中点击你想要的位置。

这是我要在播放器开始播放时验证的 html:

<div id="progressbar" data-value="0" class="ui-slider ui-slider-horizontal ui-widget ui-widget-content ui-corner-all"><div class="ui-slider-range ui-widget-header ui-corner-all ui-slider-range-min" style="width: 61.436170212766%;"></div><span class="ui-slider-handle ui-state-default ui-corner-all" tabindex="0" style="left: 61.436170212766%;"><div class="tooltip-container" style="display: none;"><div id="time-tooltip">0:03:50</div><div class="triangle-down"></div></div></span></div>

我尝试了几个没有运气的示例,这是我编写的代码的一部分,测试用例运行并且“Toggle-play”元素中的“click”事件运行良好:

    reg = @driver.find_element(:id, "fancybox-frame")
    @driver.switch_to.frame reg
    @driver.find_element(:id, "toggle-play").click

我附上了 Google Chrome 浏览器的媒体控件和“检查元素”部分的屏幕截图(该播放器仅适用于 Google Chrome,不适用于 Firefox)

【问题讨论】:

【参考方案1】:

我找到了答案并为播放器尝试了这个命令:

@driver.execute_script("document.getElementById('dashplayer').load();")
@driver.execute_script("document.getElementById("dashplayer").pause();")
@driver.execute_script("document.getElementById('dashplayer').paused;")
@driver.execute_script("document.getElementById("dashplayer").play();")
@driver.execute_script("document.getElementById('dashplayer').volume;")
@driver.execute_script("document.getElementById('dashplayer').volume=0.5;")

【讨论】:

【参考方案2】:

我个人认为最好的方法是使用播放器的Java Script API。查找文档并通过调用操作的 javascript 方法来执行命令。 在 Ruby Driver 中执行 JavaScript 的代码:

# execute arbitrary javascript
puts driver.execute_script("return window.location.pathname")
# pass elements between Ruby and JavaScript
element = driver.execute_script("return document.body")
driver.execute_script("return arguments[0].tagName", element) #=> "BODY"

【讨论】:

谢谢!但我不明白如何将该代码添加到我的测试用例中,例如,让播放器暂停或播放内容 我添加了以下代码但没有成功:@driver.execute_script("var vid = document.getElementById('dashplayer')") @driver.execute_script("return vid.duration") @driver.execute_script("return vid.currentTime") 它给了我一个“vid is not defined”错误

以上是关于视频流 html5 播放器。如何自动化滑动搜索和音量控制的主要内容,如果未能解决你的问题,请参考以下文章

HTML5 视频自动播放在 chrome 中不起作用

如何在html5中自动播放视频

仿微博视频边下边播之滑动TableView自动播放-b

html5如何实现自动播放视频

HTML5 视频搜索

HTML5 视频搜索