我在Ruby中使用Webdriver,并且想验证iFrame中html5破折号播放器的搜索和音量滑块控件。
想法是仅检查播放器是否接受了命令,以提前搜索“ 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)
我个人认为最好的方法是使用播放器的Java Script API。查找文档并通过调用JavaScript方法执行操作来执行命令。在Ruby驱动程序中执行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"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句