Python Selenium UI 实现视频自动化播放

1.需求:实现某一课程自动播放

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from PIL import Image
import time
import ddddocr
headers={"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36"}# 自动化进入网页
s = Service(r"F:\Course\edutest\chromedriver.exe")
driver = webdriver.Chrome(service=s)
driver.get('http://202.197.98.53:8888/LMS/login.do?redirectUrl=http://202.197.98.53:8888/LMS/study/course/onlineCourse/detail.do?id=148')
driver.refresh()  # 刷新页面
driver.maximize_window()  # 浏览器最大化
# 获取验证码的图片,并进行识别,将识别的结果,输入到验证码输入框中
# 对当前页面进行截图
driver.save_screenshot('login.png')
# 选择验证码图片的元素
yzm_btn = driver.find_element_by_id('imgObj')
# 获取图片元素的位置
loc = yzm_btn.location
# 获取图片的宽高
size = yzm_btn.size
# 获取验证码上下左右的位置,电脑的缩放比例125%(100%就不需要乘),需要乘以1.25,否则会出现定位不准确
left = loc['x']
top = loc['y']
right = (loc['x'] + size['width'])
botom = (loc['y'] + size['height'])
val = (left, top, right, botom)         # 得到左上右下的值,顺序固定
# 打开网页截图
login_pic = Image.open('login.png')
# 通过左上右下的值,去截取验证码
yzm_pic = login_pic.crop(val)
# 保存验证码
yzm_pic.save('yzm.png')
# 识别验证码
ocr = ddddocr.DdddOcr(old=True)
with open("yzm.png", 'rb') as f:image = f.read()
res = ocr.classification(image)
# 填充用户名 密码 验证码
driver.find_element_by_name('txt_loginName').send_keys("账号")
driver.find_element_by_name('txt_password').send_keys("密码")
driver.find_element_by_name("txt_code").send_keys(res)
# 点击登录,登录成功
driver.find_element_by_class_name("login_button").click()
# 点击我的专业课程
driver.find_element_by_link_text("我的专业课程").click()
# 点击计算机网络原理
time.sleep(2)
driver.find_element_by_xpath('//*[@id="courseList"]/li[2]/table/tbody/tr/td[1]/a/img').click()
# 点击前去学习
time.sleep(2)
driver.find_element_by_xpath('//button[@class="btn-warning btn btn-block"]').click()
# 点击开始学习 进入新页面
time.sleep(2)
handles = driver.window_handles          #获取当前浏览器的所有窗口句柄
driver.switch_to.window(handles[-1])     #切换到最新打开的窗口
driver.find_element_by_xpath('//div[@class="r"]/a[@class="btn-danger"]/span[@id="btn_openCourse_2222"]').click()
# 循环播放所有课程目录
time.sleep(2)
handles = driver.window_handles          #获取当前浏览器的所有窗口句柄
driver.switch_to.window(handles[-1])     #切换到最新打开的窗口
# 第一课 处理frame
driver.switch_to.window(driver.window_handles[-1])
print('------------数据结构与算法第1课播放开始2700s------------------')
driver.find_element_by_xpath('/html/body/div[3]/ul/li[1]/a').click()
time.sleep(2700)
print('------------数据结构与算法第1课播放完毕------------------')
driver.find_element_by_xpath('/html/body/div[3]/ul/li[2]/a').click()
time.sleep(3480)
driver.find_element_by_xpath('/html/body/div[3]/ul/li[3]/a').click()
time.sleep(2760)
driver.find_element_by_xpath('/html/body/div[3]/ul/li[4]/a').click()
time.sleep(2520)
driver.find_element_by_xpath('/html/body/div[3]/ul/li[5]/a').click()
time.sleep(2820)
driver.find_element_by_xpath('/html/body/div[3]/ul/li[6]/a').click()
time.sleep(2820)
driver.find_element_by_xpath('/html/body/div[3]/ul/li[7]/a').click()
time.sleep(2880)
driver.find_element_by_xpath('/html/body/div[3]/ul/li[8]/a').click()
time.sleep(2640)
driver.find_element_by_xpath('/html/body/div[3]/ul/li[9]/a').click()
time.sleep(2640)
driver.find_element_by_xpath('/html/body/div[3]/ul/li[10]/a').click()
time.sleep(2700)
print('------------第10课播放完毕------------------')
driver.find_element_by_xpath('/html/body/div[3]/ul/li[11]/a').click()
time.sleep(2760)
driver.find_element_by_xpath('/html/body/div[3]/ul/li[12]/a').click()
time.sleep(2940)
driver.find_element_by_xpath('/html/body/div[3]/ul/li[13]/a').click()
time.sleep(2580)
driver.find_element_by_xpath('/html/body/div[3]/ul/li[14]/a').click()
time.sleep(3060)
driver.find_element_by_xpath('/html/body/div[3]/ul/li[15]/a').click()
time.sleep(2940)
driver.find_element_by_xpath('/html/body/div[3]/ul/li[16]/a').click()
time.sleep(2460)
driver.find_element_by_xpath('/html/body/div[3]/ul/li[17]/a').click()
time.sleep(3060)
driver.find_element_by_xpath('/html/body/div[3]/ul/li[18]/a').click()
time.sleep(2580)
driver.find_element_by_xpath('/html/body/div[3]/ul/li[19]/a').click()
time.sleep(2820)
driver.find_element_by_xpath('/html/body/div[3]/ul/li[20]/a').click()
time.sleep(3600)
print('--------已播放至第20课--------')
driver.find_element_by_xpath('/html/body/div[3]/ul/li[21]/a').click()
time.sleep(3000)
driver.find_element_by_xpath('/html/body/div[3]/ul/li[22]/a').click()
time.sleep(2040)
driver.find_element_by_xpath('/html/body/div[3]/ul/li[23]/a').click()
time.sleep(2700)
driver.find_element_by_xpath('/html/body/div[3]/ul/li[24]/a').click()
time.sleep(2160)
driver.find_element_by_xpath('/html/body/div[3]/ul/li[25]/a').click()
time.sleep(2700)
driver.find_element_by_xpath('/html/body/div[3]/ul/li[26]/a').click()
time.sleep(3060)
driver.find_element_by_xpath('/html/body/div[3]/ul/li[27]/a').click()
time.sleep(2520)
print('------------数据结构与算法第27课播放完毕------------------')
driver.find_element_by_xpath('/html/body/div[3]/ul/li[28]/a').click()
time.sleep(2580)
print('------------数据结构与算法第二十八课播放完毕------------------')
driver.find_element_by_xpath('/html/body/div[3]/ul/li[29]/a').click()
time.sleep(4560)
print('------------数据结构与算法第二十九课播放完毕------------------')
driver.find_element_by_xpath('/html/body/div[3]/ul/li[30]/a').click()
time.sleep(3720)
driver.find_element_by_xpath('/html/body/div[3]/ul/li[37]/a').click()
time.sleep(3720)
driver.find_element_by_xpath('/html/body/div[3]/ul/li[38]/a').click()
time.sleep(3720)
print('------------数据结构与算法播放完毕------------------')
driver.quit()

运行ok截图

2.合并播放所有课程
加一个类 tool.py,直接运行该类即可。
import sys

sys.path.append(‘F:\Course\edutest\test’) # 加入路径,添加目录
import test_edu_one
import test_edu_two
import test_edu_frive

Python Selenium UI 实现视频自动化播放相关推荐

  1. python selenium UI自动化解决验证码的4种方法

    测试环境 windows7+ firefox50+ geckodriver # firefox浏览器驱动 python3 selenium3 selenium UI自动化解决验证码的4种方法:去掉验证 ...

  2. Mac 下使用 Python+Selenium 实现西瓜视频自动上传及草稿发布

    背景 研究下 Python+Selenium 自动化测试框架,简单实现 Mac 下自动化批量上传视频西瓜视频并发布,分享给需要的同学(未做过多的异常处理). 脚本实现 首先通过手工手机号登录,保存西瓜 ...

  3. python selenium 框架说明_UI自动化框架bok-choy(selenium+python+page object)使用介绍

    前言 bok choy是一个开源的使用python语言,以Page Object模式封装selenium的验收测试框架.在工作中可以用它来做UI层面的自动化.为了更好地理解本文,您需要有seleniu ...

  4. Python+selenium 实现自动上传视频到自媒体平台并发布好看短视频实例演示

    Python+selenium 实现自动上传并发布好看短视频实例演示 第一章:效果展示 ① 效果展示 ② 素材展示 一个为视频,另一个为像素大小不小于视频的封面. 第二章:实现过程 ① 调用已启用的浏 ...

  5. Python selenium —— 将你的自动化脚本打包成一个exe

    写好了Python selenium脚本,到其他机器上运行,还得要在其他机器上也装一套Python的环境,尤其在你用了一些第三方库的时候,甚至还要顾及操作系统是32位还是64位,是不是很坑,如果能打成 ...

  6. Python Selenium UI自动化:滚动条滑动

    文章目录 问题 滑动至固定位置 Window 对象方法 - scrollTo js&python:滑动至固定位置 滑动至元素 元素对象方法 js&python:滑动至元素 问题 在UI ...

  7. Python Selenium UI自动化 ⽂件上传

      UI自动化进行文件上传,其实本质就是将所需上传的文件路径,传递给后端服务即可,至于读取文件的过程,其实开发人员已经在后端服务中完成了.所以我们要做的就是:拿到文件路径 -> 传出去.那么这里 ...

  8. Python+Selenium UI自动化 - 调用JS代码

    当webdriver遇到无法完成的操作时候,这个时候可以使用javascript来完成,webdriver提供了execute_script()接口来调用js代码. 执行js有两种场景: 1.在页面上 ...

  9. Python+Selenium UI自动化 - alert/confirm/prompt窗口处理方法

    WebDriver中处理原生JS的alert.confirm以及prompt非常方便,三种弹出窗口均无法直接通过页面元素定位,不关闭窗口无法在页面上做其他操作 语法:         text:返回a ...

最新文章

  1. qq空间等闪动的文字怎么做?
  2. 主流浏览器及对应内核
  3. VMware-workstation-6.0 安装系统前必须映射光驱盘符
  4. python怎样缩进语法边界-Python的基础语法
  5. day16-面向对象编程进阶
  6. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_04 IO字节流_3_字节输出流_OutputStream类FileOutputStream...
  7. 万字干货:阿里巴巴是怎么做大数据算法应用测试的? | 凌云时刻
  8. 推荐一些经典的编程从入门到进阶的书籍-附下载资源
  9. 照片一寸改成二寸,并压缩体积KB的工具
  10. linux ubuntu18 移植sudo指令到ARM开发板记录
  11. 周末了,看,首富出门遛狗。
  12. 【Go语言学习】安装与配置
  13. 关于安装cmd命令行安装pyinstaller库失败的解决方法
  14. 电脑文件夹怎么设置密码?这2个方法一看就会!
  15. EMMC 擦除组的理解
  16. 中国软件公司100强排名
  17. 北斗卫星同步时钟(NTP网络时钟服务器)成功投运世界级工程港珠澳大桥
  18. k1658停运_2020厦门停运动车车次整理
  19. 一、网上商城推荐系统
  20. Using fallback Sshlinedraw for CID-keyed font STSong-Light

热门文章

  1. 超详细的Git下载安装、环境变量配置教程
  2. 43岁张曼玉回春疑整容(组图)
  3. 动态加载JS脚本有4种方法
  4. OpenCV中 cv2.waitKey的使用
  5. spark3.3.1通过hbase-connectors连接CDH6.3.2自带hbase
  6. 阮的flex布局语法篇
  7. WebStorm安装与破解
  8. [android] 手机卫士黑名单功能(ListView优化)
  9. hdu 诡异的楼梯(BFS)
  10. 微信小程序界面设计入门课程-样式wxss中使用css课程-字体-font-size字体大小