Python 设置等待时长为视频时长,等待时长内如定位到元素则进行操作
项目中涉及到视频播放,当视频播放完毕后弹出一个弹窗,可以点击提交。
实现过程:
1、获取视频时长
获取视频时长的目的是为了设置等待时长(见步骤2)
1)获取视频下载URL
a、发送post请求,获取token
项目中,发送的post请求header中,content-type为application/json,忽略了这一点,发送出去的post请求一直报400错误码,后来发现到header中的content-type,于是对post请求的body数据进行json格式化,即:使用python内置的json库,对data进行处理:json.dumps(data),post中的data使用上述处理后的数据后,返回码不再报400错误,返回200了。
b、获取视频URL
这里就是发了两个request,两个request的params中均需携带a中所获取到的token:
第一request获取到id,第二个request中的params需要用到第一个request获取到的id。第二个request返回的数据中包含有视频URL
2)下载视频
根据1)中b所获取到的视频URL,发送request去下载视频。
3)获取视频时长
这里用到了第三方库:moviepy,下列代码执行时,会检测本地是否存在ffmpeg-win32-v3.2.4.exe,如果没有,会自动下载保存到默认位置:C:\Users\xxx\AppData\Local\imageio\ffmpeg\ffmpeg-win32-v3.2.4.exe
FFmpeg可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序,有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。
2、等待视频播放完毕
等待时长为视频时长+2s
定位弹窗
3、出现弹窗,则点击,如到达等待时长后仍未弹出弹窗,则打印超时信息