python利用selenium库(WEB自动化)完成智慧树自动刷题

这篇具有很好参考价值的文章主要介绍了python利用selenium库(WEB自动化)完成智慧树自动刷题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 这里用的是Chrome浏览器,使用selenium库是需要先安装Chrome的驱动

分析:

selenium库能实现网页自动操作,智慧树每次学习完一小节后都需要点击下一节视频。这里我检测了视频的总播放长度和当前播放的时间长度,每5秒钟检测一次它们是否相同,如果相同就点击下一节视频完成自动化。看视频时也会遇到不定时弹窗,就每隔5秒钟检测是否有弹窗出现,如果有弹窗就点击选项然后关闭。大概的思路就是这样。

如果有什么地方侵权了请联系我删除

我只是为了能和大家一起学习,没有其他意思

#导入库
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
import os
import time


# 点击开始
def play():
    start_status = driver.find_element(By.XPATH, '//div[@id="playButton"]').get_attribute('class')
    start_button = driver.find_element(By.ID, 'playButton')
    xuanting = driver.find_element(By.XPATH, '//*[@id="vjs_container"]/div[8]')  # 点击视频
    jianchetanchuang()  # 检测弹窗
    time.sleep(2)
    if start_status.find('playButton') != -1:
        print('当前静止')

        xuanting.click()
        print('点击播放成功')
    else:
        print('当前正在播放')


# 悬停找到控制台
def openControlsBar():
    controlsBar = driver.find_element(By.XPATH, ' //div[@id="container"]')
    ActionChains(driver).move_to_element(controlsBar).perform()  ##


# 下一个视频
def nextVideo():
    openControlsBar()
    nextBtn = driver.find_element(By.XPATH, '//div[@id="nextBtn"]')
    nextBtn.click()
    print('切换下一个视频')


# 获取当前播放时间
def getCurrentTime():
    openControlsBar()
    time = driver.find_element(By.XPATH, '//div[@class="nPlayTime"]/span[1]').text
    print('当前播放时间为:' + time)
    return time


# 关闭弹窗继续播放
def pop_up():
    panduan = driver.find_element(By.XPATH,
                                  '//*[@id="playTopic-dialog"]/div/div[2]/div/div[1]/div/div/div[2]/p/span[2]').text
    if panduan in '判断题':
        driver.find_element(By.XPATH,
                            '//*[@id="playTopic-dialog"]/div/div[2]/div/div[1]/div/div/div[2]/ul/li[1]/div[2]').click()  # 点击第一个选项
        driver.find_element(By.XPATH, '//*[@id="playTopic-dialog"]/div/div[3]/span/div').click()  # 点击关闭

    else:
        driver.find_element(By.XPATH,
                            '//*[@id="playTopic-dialog"]/div/div[2]/div/div[1]/div/div/div[2]/ul/li[1]').click()  # 点击第一个
        driver.find_element(By.XPATH, '//*[@id="playTopic-dialog"]/div/div[3]/span/div').click()  # 点击关闭

        # chuowu = driver.find_element(By.XPATH,'//*[@id="playTopic-dialog"]/div/div[2]/div/div[1]/div/div/div[2]/p/span[1]/span').text#获取是否正确
        # driver.find_element(By.XPATH,'//*[@id="playTopic-dialog"]/div/div[2]/div/div[1]/div/div/div[2]/ul/li[2]/div[2]')#点击错
        # if chuowu == '正确':
        # driver.find_element(By.XPATH,'//*[@id="playTopic-dialog"]/div/div[2]/div/div[1]/div/div/div[2]/ul/li[1]/div[2]')#点击对
        # driver.find_element(By.XPATH,'//*[@id="playTopic-dialog"]/div/div[3]/span/div').click()#点击关闭


# 关闭学前必读
def xueqian():
    try:
        # 检测是否有学前必读

        # 点击×
        close = driver.find_element(By.XPATH, '// *[ @ id = "app"] / div / div[6] / div[2] / div[1] / i')
        close.click()
        print("关闭学前必读成功!")

    except:
        print("未发现学前必读")


# 获取当前视频总时间
def getTotalTime():
    openControlsBar()
    time = driver.find_element(By.XPATH, '//div[@class="nPlayTime"]/span[2]').text
    print('本集视频时间为:' + time)
    return time

#控制下面的循环间隔
def sleeptime(hour, min, sec):
    return hour * 3600 + min * 60 + sec

#检测弹窗
def jianchetanchuang():  # 检测弹窗
    try:
        pop_up()  # 关闭弹窗

        print('关闭弹窗完成')
    except:
        print('未检测到弹窗')


# 不自动关闭浏览器
option = webdriver.ChromeOptions()
option.add_experimental_option("detach", True)
driver = webdriver.Chrome(options=option)
#主程序
driver.get('智慧树视频链接地址')
userName = "填写账号"
passWord = "填写密码"
driver.find_element(By.ID, 'lUsername').send_keys(userName)
driver.find_element(By.ID, 'lPassword').send_keys(passWord)
driver.find_element(By.XPATH, "//span[@class='wall-sub-btn']").click()
time.sleep(2)
yanzhi = driver.find_element(By.XPATH, '/html/body/div[29]/div[2]/div/div/div[1]/span[2]').text
second = sleeptime(0, 0, 5)
if yanzhi == '请完成安全验证':
    print('完成验证按任意键继续')
    os.system('pause')

# 检测是否看完了

while (True):

    time.sleep(second)  # 5秒执行一次
    #关闭学前必读
    xueqian()
    # 检测弹窗
    jianchetanchuang()

    if getCurrentTime() == getTotalTime():
        nextVideo()

    time.sleep(5)
    play()

 文章来源地址https://www.toymoban.com/news/detail-561526.html

到了这里,关于python利用selenium库(WEB自动化)完成智慧树自动刷题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【自动化测试】基于Selenium + Python的web自动化框架

    Selenium是一个基于浏览器的自动化工具,她提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid:  1、Selenium IDE:Firefox的一个扩展,它可以进行录制回放,并可以把录制的操作以多种语言(例如java,p

    2024年02月07日
    浏览(76)
  • Python自动化实战之使用Selenium进行Web自动化详解

    为了完成一项重复的任务,你需要在网站上进行大量的点击和操作,每次都要浪费大量的时间和精力。Python的Selenium库就可以自动化完成这些任务。 在本篇文章中,我们将会介绍如何使用Python的Selenium库进行Web自动化,以及如何将它应用于实际项目中。如果你是一名Python爱好

    2024年02月13日
    浏览(47)
  • python基于Selenium的web自动化框架

    1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid: Selenium IDE:Firefox的一个扩展,它可以进行录制回放,并可以把录制的操作以多种语言(例

    2024年02月02日
    浏览(58)
  • 【web自动化】selenium+python八大元素定位

    推荐:b站软件测试老白 注意点 1.有id才能能使用id定位 2.id不能重复 通过百度页面,演示如何查找id确定id是否重复,其他方式定位也可以这样搜索 代码如下(示例): 如果有多个class_name,可以使用 find_elements 和取下标的方式 例如:打开哔哩哔哩页面,有番剧,电影等等,他

    2024年01月21日
    浏览(82)
  • python Web自动化之Selenium的基本使用

    1.selenium介绍 概述 Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。 优势 开源软件:源代码开放,可根据需要来增加工具的某些功能; 跨平台:linux、windows、mac; 多语言:支持Java、Python、C#、JavaScript、Ruby等。 WebDriv

    2023年04月08日
    浏览(38)
  • jenkins+selenium+python实现web自动化测试

    jenkins+selenium可以做到对web自动化的持续集成。 Jenkins的基本操作: 新建视图: 新建job: 可以选择构建一个自由风格的软件项目或者复制已有的item 安装Jenkins插件, SSH plugin ,Email Extension Plugin , Hudson Seleniumhq plugin 点击系统管理-管理插件 在可选插件面板Filter中输入插件名,

    2024年02月02日
    浏览(55)
  • 基于Selenium+Python的web自动化测试框架

    一、什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid。 Selenium IDE:Firefox的一个扩展,它可以进行录制回放,并把录制的操作以多种语言

    2024年02月02日
    浏览(73)
  • Python+selenium,轻松搭建 Web 自动化测试框架

    在程序员的世界中,一切重复性的工作,都应该通过程序自动执行。 「自动化测试」就是一个最好的例子。 随着互联网应用开发周期越来越短,迭代速度越来越快,只会点点点,不懂开发的手工测试,已经无法满足如今的业务要求,只能被企业逐步裁员淘汰。 「自动化测试

    2024年02月10日
    浏览(103)
  • 基于Selenium+Python的web自动化测试框架详解

    目录 一、什么是Selenium? 二、自动化测试框架 三、自动化框架的设计和实现 四、需要改进的模块 五、总结 Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selen

    2024年02月09日
    浏览(55)
  • Selenium基于Python web自动化测试框架 -- PO

     🔥 交流讨论: 欢迎加入我们一起学习! 🔥 资源分享 : 耗时200+小时精选的「软件测试」资料包 🔥  教程推荐: 火遍全网的《软件测试》教程   📢 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 关于selenium测试框架首先想到的就是PO模型,简单说下PO模型 PO模型的

    2024年02月22日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包