(二十九)WebDriver API之处理HTML5的视频播放
随笔记录方便自己和同路人查阅。
#------------------------------------------------我是可耻的分割线-------------------------------------------
学习selenium自动化之前,最好先学习HTML、CSS、JavaScript等知识,有助于理解定位及操作元素的原理。关于python和selenium安装请自行搜索别的资料,
这里就不多做介绍了,所有例子均使用python3.6+selenium执行的。
#------------------------------------------------我是可耻的分割线-------------------------------------------
目前HTML5技术已渐渐成为主流,主流的浏览器都已支持HTML5。越来越多的应用使用了HTML5的元素,如canvas、video等,另外网页存储功能更增加了用户的网络体验,使得越来越多的开发者在使用这样的标准,所以我们也需要学习如何使用自动化技术来测试它们。
WebDriver支持在指定的浏览器上测试HTML5,另外,我们还可以使用JavaScript来测试这些功能,这样就可以在任何浏览器上测试HTML5了。
大多数浏览器使用控件(如Flash)来播放视频,但是,不同的浏览器需要使用不同的插件。HTML5定义了一个新的元素<video>,指定了一个标准的方式来嵌入电影片段,IE9+、Firefox、Opera、Chrome都支持该元素。如下图。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函数有个内置的对象叫做arguments。Arguments对象包含了函数调用的参数组,[0]表示取对象的第一个值。
currentSrc熟悉返回当前音频/视频的URL。如果未设置音频/视频,则返回空字符串。Load()、play()、pause()等控制着视频的加载、播放、暂停。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异