(二十九)WebDriver API之处理HTML5的视频播放

随笔记录方便自己和同路人查阅。

#------------------------------------------------我是可耻的分割线-------------------------------------------

  学习selenium自动化之前,最好先学习HTML、CSS、JavaScript等知识,有助于理解定位及操作元素的原理。关于python和selenium安装请自行搜索别的资料,

这里就不多做介绍了,所有例子均使用python3.6+selenium执行的。

#------------------------------------------------我是可耻的分割线-------------------------------------------

 

  目前HTML5技术已渐渐成为主流,主流的浏览器都已支持HTML5。越来越多的应用使用了HTML5的元素,如canvasvideo等,另外网页存储功能更增加了用户的网络体验,使得越来越多的开发者在使用这样的标准,所以我们也需要学习如何使用自动化技术来测试它们。

  WebDriver支持在指定的浏览器上测试HTML5,另外,我们还可以使用JavaScript来测试这些功能,这样就可以在任何浏览器上测试HTML5了。

  大多数浏览器使用控件(如Flash)来播放视频,但是,不同的浏览器需要使用不同的插件。HTML5定义了一个新的元素<video>,指定了一个标准的方式来嵌入电影片段,IE9+FirefoxOperaChrome都支持该元素。如下图。http://html5video-player.com/

 

 

 

  在本节中,我们将探索如何自动化测试<video>,该元素提供了JavaScript接口和多种方法及属性。

 

from selenium 

 

 

 

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()
driver.get('http://videojs.com/')

video = driver.find_element_by_xpath("//*[@id='preview-player_html5_api']")

#返回播放文件地址
url = driver.execute_script("return arguments[0].currentSrc;",video)
print(url)

#播放视频
print('start')
driver.execute_script("return arguments[0].play();",video)

#播放15秒
sleep(15)

#暂停视频
print('stop')
driver.execute_script("arguments[0].pause();",video)

  JavaScript函数有个内置的对象叫做argumentsArguments对象包含了函数调用的参数组,[0]表示取对象的第一个值。

  currentSrc熟悉返回当前音频/视频的URL。如果未设置音频/视频,则返回空字符串。Load()play()pause()等控制着视频的加载、播放、暂停。

 

posted @ 2019-11-21 16:11  李荣洋  阅读(281)  评论(0编辑  收藏  举报