js如何操作video标签
一.简介
在做web ui自动化时,遇到操作视频的时候有时比较让人头疼,定位时会发现只有一个<video>标签,用selenium来实现的话比较麻烦,使用js后我们只需定位到video标签,然后通过js 中处理video的相关属性和方法就可实现,我们继续往下看。
二.实例用法
1.获取视频的总时长(duration)
# document.querySelector('video').duration # js语法
js = "return document.querySelector('video').duration"
print(driver.execute_script(js))
2.获取当前播放的时长(currentTime)
js="return document.querySelector('video').currentTime"
currentTime还可以指定当前播放的时长
# 控制进度
time_list = [5, 30, 40, 50, 60, 70, 80, 90, 100] # 秒数
for i in time_list:
js = "document.querySelector('video').currentTime="+str(i)
driver.execute_script(js)
time.sleep(2)
3.判断当前视频是播放还是暂停状态(paused)
# 判断视频处于暂停还是播放 true暂停,false播放
js = "return document.querySelector('video').paused"
driver.execute_script(js)
4.暂停:pause(),播放:play()视频
# 暂停
js = "document.querySelector('video').pause()"
driver.execute_script(js)
# 播放
js = "document.querySelector('video').play()"
driver.execute_script(js)
5.设置播放倍数(playbackRate)
# 设置播放倍数
js = "document.querySelector('video').playbackRate=10" # 设置10倍数播放
driver.execute_script(js)
当你在web端刷课/刷剧时,苦于页面设置进度最快也就三倍速,此时playbackRate可以帮助你解决这个烦恼
6.设置清晰度(src)
# 设置清晰度,通过设置播放源来设置
js = "document.querySelector('video').src='xxxx'"
设置清晰度是通过设置video标签中src属性来实现的,因此需要先知道src播放源
7.设置视频播放音量大小(volume)
# js = "retrun document.querySelector('video').volume" # 获取当前音量大小
js_su = "document.querySelector('video').volume=1" # 设置当前音量为最大
driver.execute_script(js_su)
volume的值:0表示音量最小,1表示最大,0.x表示设置音量大小为x0%(x为1-9数字)
若当前视频是静音状态,此时设置volume是没有效果的,因为执行volume
属性的取值范围为 0(静音)到 1(最大音量),不包括 -1(取消静音)。我们可以通过设置muted来取消静音状态后再去设置音量大小。
js = "document.querySelector('video').muted=false" # 解除禁,会暂停视频
muted为false是表示解除静音,此时视频会暂停。为true是开始静音。
8.设置循环播放(loop)
# loop是否循环播放,true设置循环,false不循环
# js = "return document.querySelector('video').loop" # 判断当前是否处于循环状态
js = "document.querySelector('video').loop=true"
driver.execute_script(js)
三.其它用法
js官网参考:https://developer.mozilla.org/en-US/docs/Learn/Performance/video
poster:视频封面
preload:预加载
autoplay:自动播放
controls:浏览器自带的控制条
width:视频宽度
height:视频高度
四.遗留问题
本人学习后发现有两个问题暂没解决,知道的小伙伴可留言告知
1.全屏/退出全屏(chatgpt说的是requestFullscreen()可执行全屏,但我试了没有反应,本人谷歌浏览器)
2.获取视频弹幕信息
js如何操作video标签的更多相关文章
- js手机浏览器video标签会一直置顶,遮盖住弹出层问题
<video x5-playsinline="" playsinline="" webkit-playsinline="">&l ...
- HTML 5 video 标签跨浏览器兼容
<video width="320" height="240" controls> <source src="movie.mp4 ...
- html5 video标签屏蔽右键视频另存为的js代码-HTML5教程
点评:html5 video标签本身有下载功能但是在video区域内,点击右键可以将“视频另存为”下面是屏蔽右键视频另存为的js代码,有此需求的朋友不要错过 做HTML5的video标签,本身我们 ...
- JS BOM DOM对象 select联动 计时器 时间 css操作 节点(标签 ) 查找标签 {前端基础之BOM和DOM}
前端基础之BOM和DOM 前戏 到目前为止,我们已经学过了JavaScript的一些简单的语法.但是这些简单的语法,并没有和浏览器有任何交互. 也就是我们还不能制作一些我们经常看到的网页的一些交互,我 ...
- video标签的属性和方法总结
最近想做一个弹幕插件,查了很多video标签的属性和方法 error属性 在正常读取时候,使用媒体数据的过程中,video元素或audio元素的error属性为null,但是任何时候只要出现错误,er ...
- HTML5新增video标签及对应属性、API详解
知识说明: 比不上很牛的前端开发人员,但自始至终明白“万丈高楼平地起”,基础最重要,初学HTML5,稳固基础第一步,把最基本的整理下来,留下自己学习的痕迹.HTML5新增的video标签,将其属性以及 ...
- 用video标签流式加载
video标签 浏览器的video标签通常是接收一个src属性,然后浏览器就会根据这个src属性来自动加载视频.这个过程是浏览器来加载video的. 这种方式有什么问题吗? mp4文件不能流式加载 w ...
- 大事记 - 安卓微信浏览器 video 标签层级过高
// 为什么叫<大事记>? // 以前总有面试官问这样一个问题:“你在项目中遇到过最头疼的问题是什么,是怎么解决的?” // 当时总觉得,已解决的问题都算不上头疼,所以回答总是不尽人意. ...
- video 标签在微信浏览器的问题解决方法
最近做的些web页面,内嵌许多小视频,在ios和安卓手机上播放时,遇到不少问题: 在微信浏览器内播放时,视频会自动全屏 如果每个视频都有一张自定义的图片作为封面,在显示视频的同时,如果没有给这个视频设 ...
- Video标签事件与属性
事件与属性 属性 描述 audioTracks 返回可用的音轨列表(MultipleTrackList对象) autoplay 媒体加载后自动播放 buffered 返回缓冲部件的时间范围(TimeR ...
随机推荐
- [ACM]Uva572-Oil Deposits-DFS应用
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> usin ...
- C++/Qt网络通讯模块设计与实现(总结)
至此,C++/Qt网络通讯模块设计与实现已分析完毕,代码已应用于实际产品中. C++/Qt网络通讯模块设计与实现(一) 该章节从模块的功能需求以及非功能需求进行分析,即网络通讯模块负责网络数据包的发送 ...
- [数据库/Java]数据库开发过程中产生的MySQL错误代码及其解决方案
前言 吐槽一下,均是这两天遇到的破烂事儿,搞定了也好,以后出现此类问题也就放心些了. 下列遇到的问题大都是因为MySQL从5.x版本升级到8.0.11(MySQL8.0涉及重大改版)后,跟着连带着出现 ...
- 测试环境治理之MYSQL索引优化篇
作者:京东物流 李光新 1 治理背景 测试环境这个话题对于开发和测试同学一定不陌生,大家几乎每天都会接触.但是说到对测试环境的印象,却鲜有好评: •环境不稳定,测试五分钟,排查两小时 •基础建设不全, ...
- 线上诊断神器-arthas基本应用
Arthas基本应用 一.Arthas作用 什么是Arthas呢? Arthas 是一款阿里推出的线上监控诊断产品,通过全局视角实时查看应用 load.内存.gc.线程的状态信息,并能在不修改应用 ...
- 批量上传iOS应用程序截图的实用技巧
提交iOS应用程序截图到iTunes Connect是一项非常繁琐的任务,因为你必须上传多达数十张屏幕截图,这是一个重复而枯燥的过程.但是,我们有一个好消息要告诉开发者们,现在有一个工具可以帮助你 ...
- liquibase初始化sql
1.使用liquibase 集成依赖 <liquibase.version>4.1.1</liquibase.version> <dependency> <g ...
- 机器学习07-(中文分词、样本类别均衡化、置信概率、k-means聚类算法、均值漂移聚类算法)
机器学习-07 机器学习-07 中文分词(jieba) 样本类别均衡化 置信概率 聚类模型 K均值算法 均值漂移算法 轮廓系数 DBSCAN算法 推荐引擎 代码总结 结巴分词 酒店评论舆情分析 针对测 ...
- 数据分析06-五个pandas可视化项目
数据分析-06 数据分析-06 pandas可视化 基本绘图 Series数据可视化 DataFrame数据可视化 高级绘图 代码总结 pandas可视化 基本绘图 pandas高级绘图 pandas ...
- PaddleDetection 快速上手
PaddleDetection 快速上手 本项目以路标数据集roadsign为例,详细说明了如何使用PaddleDetection训练一个目标检测模型,并对模型进行评估和预测. 本项目提供voc格式的 ...