🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ## **4.17 处理 HTML5 视频播放** HTML5 技术非常流行,主流的浏览器都支持 HTML5,越来越多的应用使用 HTML5的元素,如 canvas、video 等。另外,网页存储功能提升了用户的网络体验,使得越来越多的开发者开始使用 HTML5。 WebDriver 支持在指定的浏览器上测试 HTML5,另外,还可以使用 JavaScript 测试这些功能,这样就可以在任意浏览器上测试 HTML5 了。 <br /> 大多数浏览器使用插件(如 Flash)播放视频,但是,不同的浏览器需要使用不同的插件。HTML5 定义了一个新的元素` <video>`,指定了一个标准的方式嵌入电影片段。HTML5 Video Player 如图 4-10 所示,IE9+、Firefox、Opera、Chrome 都支持元素`<video>`。 ![](https://img.kancloud.cn/67/f7/67f74b7e23ab69a40da00fb778ac8986_471x229.png) 下面介绍如何自动化测试`<video>`,`<video>`提供了JavaScript接口和多种方法及属性。 ``` from time import sleep from selenium import webdriver driver = webdriver.Chrome() driver.get("http://videojs.com/") video = driver.find_element_by_id("preview-player_html5_api") # 返回播放文件地址 url = driver.execute_script("return arguments[0].currentSrc;", video) print(url) # 播放视频 print("start") driver.execute_script("arguments[0].play()", video) # 播放 15s sleep(15) # 暂停视频 print("stop") driver.execute_script("arguments[0].pause()", video) driver.quit() ``` JavaScript 有个内置的对象叫作 arguments。arguments 包含了函数调用的参数数组,[0]表示取对象的第 1 个值。 currentSrc 返回当前音频/视频的 URL。如果未设置音频/视频,则返回空字符串。 load()、play()和 pause() 控制视频的加载、播放和暂停。