一.简介

在做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标签的更多相关文章

  1. js手机浏览器video标签会一直置顶,遮盖住弹出层问题

    <video x5-playsinline="" playsinline="" webkit-playsinline="">&l ...

  2. HTML 5 video 标签跨浏览器兼容

    <video width="320" height="240" controls>   <source src="movie.mp4 ...

  3. html5 video标签屏蔽右键视频另存为的js代码-HTML5教程

    点评:html5 video标签本身有下载功能但是在video区域内,点击右键可以将“视频另存为”下面是屏蔽右键视频另存为的js代码,有此需求的朋友不要错过   做HTML5的video标签,本身我们 ...

  4. JS BOM DOM对象 select联动 计时器 时间 css操作 节点(标签 ) 查找标签 {前端基础之BOM和DOM}

    前端基础之BOM和DOM 前戏 到目前为止,我们已经学过了JavaScript的一些简单的语法.但是这些简单的语法,并没有和浏览器有任何交互. 也就是我们还不能制作一些我们经常看到的网页的一些交互,我 ...

  5. video标签的属性和方法总结

    最近想做一个弹幕插件,查了很多video标签的属性和方法 error属性 在正常读取时候,使用媒体数据的过程中,video元素或audio元素的error属性为null,但是任何时候只要出现错误,er ...

  6. HTML5新增video标签及对应属性、API详解

    知识说明: 比不上很牛的前端开发人员,但自始至终明白“万丈高楼平地起”,基础最重要,初学HTML5,稳固基础第一步,把最基本的整理下来,留下自己学习的痕迹.HTML5新增的video标签,将其属性以及 ...

  7. 用video标签流式加载

    video标签 浏览器的video标签通常是接收一个src属性,然后浏览器就会根据这个src属性来自动加载视频.这个过程是浏览器来加载video的. 这种方式有什么问题吗? mp4文件不能流式加载 w ...

  8. 大事记 - 安卓微信浏览器 video 标签层级过高

    // 为什么叫<大事记>? // 以前总有面试官问这样一个问题:“你在项目中遇到过最头疼的问题是什么,是怎么解决的?” // 当时总觉得,已解决的问题都算不上头疼,所以回答总是不尽人意. ...

  9. video 标签在微信浏览器的问题解决方法

    最近做的些web页面,内嵌许多小视频,在ios和安卓手机上播放时,遇到不少问题: 在微信浏览器内播放时,视频会自动全屏 如果每个视频都有一张自定义的图片作为封面,在显示视频的同时,如果没有给这个视频设 ...

  10. Video标签事件与属性

    事件与属性 属性 描述 audioTracks 返回可用的音轨列表(MultipleTrackList对象) autoplay 媒体加载后自动播放 buffered 返回缓冲部件的时间范围(TimeR ...

随机推荐

  1. 在Ubuntu 18.04上安装NVIDIA

    安装NVIDIA显卡驱动风险极大,新手注意. 在Ubuntu 18.04上安装NVIDIA有三种方法: 使用标准Ubuntu仓库进行自动化安装 使用PPA仓库进行自动化安装 使用官方的NVIDIA驱动 ...

  2. XXL-JOB定时任务框架(Oracle定制版)

    特点 xxl-job是一个轻量级.易扩展的分布式任务调度平台,能够快速开发和简单学习.开放源代码并被多家公司线上产品使用,开箱即用.尽管其确实非常好用,但我在工作中使用的是Oracle数据库,因为xx ...

  3. 对抗 ChatGPT,免费体验 Claude

    对抗 ChatGPT,免费体验 Claude Claude 是 Anthropic 构建的大型语言模型(LLM),对标ChatGPT. Anthropic 创始团队多是前openai研究员和工程师,C ...

  4. 谷歌浏览器配置vue调试工具

    1.下载调试工具 下载地址:Vue Devtools_6.1.4_chrome扩展插件下载_极简插件 点击推荐下载 2.解压下载的压缩文件: 3.打开chrome浏览器,进入chrome://exte ...

  5. 关于Java中对象的向上转型和向下转型

    什么是多态? 同一个类调用同一个方法会产生不同的影响/结果 这就是多态 public class Pet{ public void eat(){ System.out.println("Pe ...

  6. Java方法的返回值及注意事项

    方法的返回值 为什么要有带返回值的方法呢? 调用处拿到方法的结果之后,才能根据结果进行下一步操作 带返回值方法的定义和调用: 如果在调用处,要根据方法的结果去编写另一段代码逻辑 为了在调用处拿到方法产 ...

  7. .Net开发的音频分离桌面应用,可用于提取背景音乐

    背景音乐对于视频来说是非常重要的,制作视频的人来说,听到一些符合自己视频的背景音乐,又找不到背景音乐的源音乐,这时候就需要有软件帮助提取背景音乐了. 项目简介 这是基于C#开发的UI界面,支持中文等多 ...

  8. #PowerBi 1分钟学会,以“万”为单位显示数据

    PowerBi是一款强大的数据分析和可视化工具,它可以帮助我们快速地制作出各种图表和报表,展示数据的价值和洞察. 但是,有时候我们的数据量太大,导致图表上的数字难以阅读和比较.例如,如果我们想要查看某 ...

  9. 微信小程序客服、支付、定位、下拉加载功能

    一.客服功能 1.只要你微信小程序,后台添加了客服,引用以下button,就可以进入聊天(在小程序官网如何添加客服用户,请自行百度,谢谢) 2.通过按钮方式 <button open-type= ...

  10. 2023-01-03:超过5名学生的课。编写一个SQL查询来报告 至少有5个学生 的所有班级,返回结果不限顺序。请问sql语句如何写? +---------+ | class | +-----

    2023-01-03:超过5名学生的课.编写一个SQL查询来报告 至少有5个学生 的所有班级,返回结果不限顺序.请问sql语句如何写? ±--------+ | class | ±--------+ ...