#2021/5/23
#功能大致实现
#未做题btn-hollow:classname:功能失败
#需改进
#2021/5/29
#测试:功能缺陷
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import timedef find_span_xpath(Str):try:   driver.find_element_by_xpath("//span[text()='"+Str+"']")return 1except:return 0
'''决定是否要观看这一节
'''
def find_up_windows():try:driver.find_element_by_xpath("//span[text()='并且首次观看视频,进度条不能拖拽哦~']")return 1except:return 0
'''判断是否有弹窗出现
'''
def find_next():try:driver.find_element_by_xpath("//span[text()='继续下一章']")return 1except:return 0
'''判断下一章是否要开始
'''
def find_next_2():try:driver.find_element_by_xpath("//span[text()='本页面还有题目没有完成,']")print("存在")return 1except:return 0Url="https://www.ulearning.cn/portal/index.html#/index/portal"
UserName=input("请输入用户名:")
UserPassword=input("请输入密码:")driver=webdriver.Chrome()driver.get(Url)
time.sleep(5)
driver.find_element_by_class_name('login-btn-text').click()
homepage_handle = driver.current_window_handle
time.sleep(3)
driver.find_element_by_id('userLoginName').send_keys(UserName)
driver.find_element_by_id('userPassword').send_keys(UserPassword)
driver.find_element_by_id('userPassword').send_keys(Keys.TAB)
driver.find_element_by_id('userPassword').send_keys(Keys.ENTER)
time.sleep(6)
driver.find_element_by_id('courseCard73196').click()
time.sleep(6)
driver.find_element_by_class_name('tab-link.tab-textbook').click()
time.sleep(6)
driver.find_element_by_class_name('button.button-red-hollow').click()
time.sleep(6)handles = driver.window_handles# 循环handles找出新窗口的handle
for handle in handles:if handle != homepage_handle:# 激活新窗口driver.switch_to.window(handle)break
time.sleep(6)#主干部分
UpWindowNumber=0while 1:if find_span_xpath('未观看')==1:if find_up_windows()==1 and UpWindowNumber<1:print('弹窗出现')UpWindowNumber=UpWindowNumber+1try:driver.find_element_by_class_name('btn-submit').click()print('关闭弹窗')except:print('检测错误')try:driver.find_element_by_class_name('mejs__overlay-button').click()print('开始观看视频')except:print('视频打开失败')while find_span_xpath('已看完')!=1:time.sleep(30)else:  if find_next()==1:driver.find_element_by_xpath("//span[text()='继续下一章']").click()print('进行下一章')'''elif find_next_2()==1:driver.find_element_by_class_name('btn-hollow').click()print('本章习题未做,进行下一章')if find_next()==1:driver.find_element_by_xpath("//span[text()='继续下一章']").click()print('进行下一章')'''#在第一次出现弹窗后弹窗隐藏因此仍然能检测到所以本功能不予以实现elif find_up_windows()==1 and UpWindowNumber<1:print('弹窗出现')UpWindowNumber=UpWindowNumber+1try:driver.find_element_by_class_name('btn-submit').click()print('关闭弹窗')except:print('检测错误')driver.find_element_by_class_name('next-page-btn.cursor').click()time.sleep(3)#########driver.quit()

Python实现优校园自动检测跳页相关推荐

  1. Python使用chardet包自动检测编码

    chardet:charset detection 一旦自动检测出编码,就可以解码了. 八种文件打开方式 w:一旦打开文件,文件内容就清空了 r:只读方式打开 a:追加方式打开 r+:先读后写 以上四 ...

  2. 【2019.07.10】python + OpenCV + adb 实现 自动 微信跳一跳

    采用python + OpenCV + adb的方案实现实心跳一跳 分四步走 模板匹配:通过OpenCV 获取到跳块中心点的坐标 # 使用标准相关系数匹配,1表示完美匹配, -1表示糟糕匹配, 0表示 ...

  3. Python实现条码识别:从图像中自动检测和识别条形码

    Python实现条码识别:从图像中自动检测和识别条形码 在现代零售业中,条形码是一项必不可少的技术.它们提供了一种快速.准确和可靠的方法来追踪和管理库存.随着计算机视觉技术的发展,我们可以利用Pyth ...

  4. python脚本自动消除安卓版_微信跳一跳脚本重出江湖,python实现安卓iOS自动版与手动版!...

    前面一段时间在GitHub上看到有人利用Python玩一款名为"跳一跳"的微信小程序,于是打算自己也来试一试,毕竟这款小游戏最近吸引了众多人的目光. 演示工具 电脑系统:Win10 ...

  5. python 实现跳一跳自动化代码_微信跳一跳脚本重出江湖,python实现安卓iOS自动版与手动版!...

    前面一段时间在GitHub上看到有人利用Python玩一款名为"跳一跳"的微信小程序,于是打算自己也来试一试,毕竟这款小游戏最近吸引了众多人的目光. 演示工具 电脑系统:Win10 ...

  6. 计算机开机跳过硬盘检查,怎么取消开机自动检测硬盘磁盘检查,开机老是修复分区怎么办及原因...

    电脑使用长了,经常会出现各种问题,特别是正常关机情况下,系统每次开机时居然会自动检测硬盘,笔记本老是开机自检硬盘,就是扫描每一个分区检测错误,非常耽误时间,于是就想把自检硬盘关了,虽然想关了,但完全不 ...

  7. 用python刷微信阅读_使用python让微信读书自动翻页

    微信读书目前是朋友圈最流行的一款读书app,但是很遗憾微信读书没有自动翻页模式,不过这可难不倒程序员,写个程序让它自动翻页不久好了. 而且微信读书有这样一个激励政策:"每阅读30分钟可兑1赠 ...

  8. 计算机开机跳过硬盘检查,快速取消Win7电脑开机自动检测硬盘的五大妙招

    当在使用电脑的过程中,总是会遇到一些故障,想必有很多人会遇见每次开机的时候都要自动检测硬盘的问题吧,这样会让开机时间变得更慢而且也觉得有点烦吧?其实出现这样的原因有可能是你非法关机直接断电或者硬盘出现 ...

  9. python自动检测wifi是否能联网,断开wifi重新连接wifi的代码。

    #文件名 pyWIFI.py #python自动检测wifi是否能联网,断开wifi重新连接wifi的代码.# 网上下载安装Python3.8 # 配置环境变量 以下为参考 # python环境变量 ...

最新文章

  1. oracle v$system_event,45.Oracle杂记——Oracle常用动态视图v$system_event
  2. SQLServer 清空某个库所有表
  3. 分享-WinForm界面开发之布局控件WeifenLuo.WinFormsUI.Docking的使用
  4. 分布式文件系统—HDFS—IDEA的Hadoop可视化插件BigDataTools
  5. Android之android.os.DeadObjectException原因
  6. uilabel 自适应
  7. python读取html文件正则替换_Python使用正则表达式过滤或替换HTML标签的方法详解...
  8. 搜狐被SEC列入“预摘牌名单”!回应:不打算提出异议
  9. 2021 MetaCamp程序设计大赛线上资格赛 7-2 心情故事
  10. ubuntu 18.04 LTS 安装SecureCRT
  11. 关于一些信息学数论问题例题的讨论
  12. 《移动通信原理与系统》——第二章《移动通信电波传播与传播预测模型》——笔记
  13. 怎么根据分隔符号将Excel数据换行复制
  14. html转word 图片格式,html转word处理图片 java
  15. MySQL从入门到入魔,总结我的学习历程,给有需要的人看!
  16. oracle 索引 状态 unusable,usable ,disable,enable
  17. 数据结构(Java)-排序算法-选择排序
  18. 关于EPS attach和EPS combined attach with sms only、NBIOT等
  19. 热搜第一!名校博士挤破头进中学当老师,甚至还有颜宁弟子......
  20. inrul plus 90sec.php,DEDE木马后门专杀工具 针对 90sec.php 一类

热门文章

  1. Mac下使用iPic+腾讯云cos打造舒服的写作环境
  2. 访问学者出国申请可以分为哪几类?
  3. 洛谷 P1496 火烧赤壁 题解 —— 离散化
  4. XCTF-攻防世界CTF平台-Web类——9、PHP2(.phps文件、url编码)
  5. input标签拾遗--引申TIY实例(下)
  6. 高压母排、电缆接头的温度监测解决方案
  7. m基于stft方法的跳频信号解跳和GFSK信号解调,并输出跳频图案
  8. python中文件读取失败_Python IOError:文件未打开以进行读取
  9. 奥浦迈完成上市辅导:年营收突破1亿元,或拟在科创板挂牌
  10. blender中如何将窗口移动到另一块屏幕上,即新开一个窗口,作用到分屏上