selenium如何处理H5视频
selenium处理H5视频主要使用的是javascript,javascript函数有内置的对象叫arguments,arguments包含了调用的参数组,[0]代表取第一个值。
currentSrc 返回当前音频或视频的URL,如果未设置则返回空字符串。
load() , play() , pause()代表视频的加载,播放,停止。
示例1:
from selenium import webdriver
from time import sleep dr = webdriver.Chrome()
dr.get('https://www.videojs.com')
dr.implicitly_wait(10)
video = dr.find_element_by_css_selector("#vjs_video_3_html5_api")
url = dr.execute_script("return arguments[0].currentSrc;",video)
print(url)
print("start")
dr.execute_script("return arguments[0].play()",video)
sleep(10)
print('stop')
dr.execute_script("return arguments[0].pause()",video)
dr.quit()
运行上面代码报错如下:
blob:https://videojs.com/905716de-68da-493b-b78d-0a56ea256ee2
start
Traceback (most recent call last):
File "js.py", line 11, in <module>
dr.execute_script("return arguments[0].play()",video)
File "F:\python3.7\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 635, in execute_script
'args': converted_args})['value']
File "F:\python3.7\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 320, in execute
self.error_handler.check_response(response)
File "F:\python3.7\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.JavascriptException: Message: javascript error: play() failed because the user didn't interact with the document first. https://goo.gl/xX8pDD
(Session info: chrome=83.0.4103.61)
解决思路,模拟手动点击播放
from selenium import webdriver
from time import sleep dr = webdriver.Chrome()
dr.get('https://www.videojs.com')
dr.implicitly_wait(10)
video = dr.find_element_by_css_selector("#vjs_video_3_html5_api")
url = dr.execute_script("return arguments[0].currentSrc;",video)
print(url)
print("start")
js = "document.querySelector('#vjs_video_3 > div.vjs-poster').click()"
dr.execute_script(js) sleep(15)
print('stop')
dr.execute_script("return arguments[0].pause()",video)
dr.quit()
结果:
blob:https://videojs.com/3d283b74-9f8e-4573-9820-d805ce938195
start
stop ***Repl Closed***
selenium如何处理H5视频的更多相关文章
- selenium操作H5视频
测试网址:http://www.w3school.com.cn/tiy/loadtext.asp?f=html5_video_simplepackage com.allin.pc;import jav ...
- 【腾讯Bugly干货分享】H5 视频直播那些事
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57a42ee6503dfcb22007ede8 Dev Club 是一个交流移动 ...
- H5 视频直播相关技术
一.移动视频直播发展 大家首先来看下面这张图: 可以看到,直播从 PC 到一直发展到移动端,越来越多的直播类 App 上线,同时移动直播进入了前所未有的爆发阶段,但是对于大多数移动直播来说,还是要以 ...
- 一看就能学会的H5视频推流方案
本文由云+社区发表 作者:周超 导语 随着直播平台爆发式增长,直播平台从 PC 端转战移动端,紧跟着直播的潮流,自己学习实现了一套简单的 H5 视频推流的解决方案,下面就给小伙伴们分享一下自己学习过程 ...
- H5视频直播扫盲
H5视频直播扫盲 2016-05-25 • 前端杂项 • 14 条评论 • lvming19901227 视频直播这么火,再不学就out了. 为了紧跟潮流,本文将向大家介绍一下视频直播中的基本流程和主 ...
- iOS APP 中H5视频默认全屏播放问题解决
问题描述:在Android中,视频可以正常在H5页面局部播放,iOS中则自动切换至全屏模式. 查看资料得以解决,20190301记录下来. 解决方法:IOS10及以后,在 video标签页中只包含 w ...
- H5视频推流方案
导语 随着直播平台爆发式增长,直播平台从 PC 端转战移动端,紧跟着直播的潮流,自己学习实现了一套简单的 H5 视频推流的解决方案,下面就给小伙伴们分享一下自己学习过程中的经验. 环境部署 1. 配置 ...
- 简单的 H5 视频推流解决方案
导语 随着直播平台爆发式增长,直播平台从 PC 端转战移动端,紧跟着直播的潮流,自己学习实现了一套简单的 H5 视频推流的解决方案,下面就给小伙伴们分享一下自己学习过程中的经验. 环境部署 1. 配置 ...
- selenium抓取视频
今天闲着没事,用selenium抓取视频保存到本地,只爬取了第一页,只要小于等于5分钟的视频... 为什么不用requests,没有为什么,就因为有些网站正则和xpath都提取不出来想要的东西,要么就 ...
随机推荐
- Educational Codeforces Round 97 (Rated for Div. 2)
补了一场Edu round. A : Marketing Scheme 水题 #include <cstdio> #include <algorithm> typedef lo ...
- 【转】Setting up SDL Extension Libraries on Visual Studio 2010 Ultimate
FROM:http://lazyfoo.net/tutorials/SDL/06_extension_libraries_and_loading_other_image_formats/windows ...
- 部署SpringBoot项目jar包到云服务器
前言 做安卓开发也有三四年了,但是对网络这块什么http.tcp/ip之类的一直不理解.并且想自己做一些小项目练练手的时候,数据库直接存在apk里总不是滋味,所以这次站在安卓开发的角度尝试着做一做简单 ...
- pandas模块常用函数解析之Series(详解)
pandas模块常用函数解析之Series 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器输入网 ...
- Python爬虫练习(requests模块)
Python爬虫练习(requests模块) 关注公众号"轻松学编程"了解更多. 一.使用正则表达式解析页面和提取数据 1.爬取动态数据(js格式) 爬取http://fund.e ...
- import tensorflow 出现非法指令(核心已转储)
使用 conda install -c conda-forge tensorflow 或者 conda install -c conda-forge tensorflow-gpu 试下.
- Java中的常见数学运算
1.舍掉小数取整:Math.floor(3.5)=3 2.四舍五入取整:Math.rint(3.5)=4 3.进位取整:Math.ceil(3.1)=4 4.取绝对值:Math.abs(-3.5)=3 ...
- Dorado download注意事项
uploader/uploader-SNAPSHOT uploader/uploader-RELEASE .....使用需要注意!
- ()C++中的赋值运算符重载函数(operator=)
本文主要介绍C++中的重载操作符(operator)的相关知识. 概述 1.1 what operator 是C++的一个关键字,它和运算符(如=)一起使用,表示一个运算符重载函数,在理解时可将ope ...
- 微信小程序获取二维码API
<%@ WebHandler Language="C#" Class="ce" %> using System; using System.Web; ...