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

时间:2015-05-22 14:31:40

标签: ruby html5 webdriver video-streaming mpeg-dash

我在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)

2 个答案:

答案 0 :(得分: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;")

答案 1 :(得分:0)

我个人认为最好的方法是使用播放器的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"