Python爬虫技术系列-06selenium完成自动化测试V01

这篇具有很好参考价值的文章主要介绍了Python爬虫技术系列-06selenium完成自动化测试V01。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 本案例目的

使用selenium库完成动点击下一页,点击视频操作等过程,
如果你非要说这是XX,那我也不过多辩解,毕竟批评不自由,赞美无意义

2. 案例实现

本案例仅是技术演示,所以会隐去相关网址等,读者可以重点查看这里使用的selenium技术点即可。另外本版本为V01版本,所以仅仅是可用,很多内容都未完善。

1.导入依赖

import time

from selenium import  webdriver  # 包
from selenium.webdriver import ActionChains # 模拟鼠标操作点击 下拉
from selenium.webdriver.common.keys import Keys # 键盘按键操作\
from selenium.webdriver.chrome.options import Options # 浏览器配置

2.初始化driver浏览器驱动

定义一个init函数,在init函数内完成初始化浏览器驱动的任务,并实现浏览器全屏等设置,返回值为一个初始化后的浏览器驱动。

# 初始化
def init():
    # 实现无可视化界面得操作
    chrome_options = Options()
    # chrome_options.add_argument('--headless')
    chrome_options.add_argument('--disable-gpu')

    # 设置chrome_options=chrome_options即可实现无界面
    driver = webdriver.Chrome(chrome_options=chrome_options, executable_path='./chromedriver.exe')
    # 把浏览器实现全屏
    driver.maximize_window()
    # 返回driver
    return driver

3.登录页面分析及登录实现

3.1 登录页面分析

查看登录页,页面如下:
Python爬虫技术系列-06selenium完成自动化测试V01,爬虫,python,爬虫,chrome
可以看见,登录页包含用户名,密码,验证码等几个部分需要输入,进入浏览器开发者工具,查看对应的css选择器。
Python爬虫技术系列-06selenium完成自动化测试V01,爬虫,python,爬虫,chrome

通过浏览器选择该元素右键复制对应css选择器,分别如下:

.UserName
.Password
.code > input:nth-child(3)

这里的验证码需要识别,我们可以设置为手动输入。
实现代码如下:

# 初始化网址 用户名和 密码
url = 'XXX'
username = 'XXX'
wd = 'XXX'
driver = init() # 初始化浏览器驱动
driver.get(url)  # 调用浏览器打开url
driver.implicitly_wait(3) # 等待3s,以完成页面渲染完成
# 定位到用户名 .UserName
username_tag = driver.find_element_by_css_selector(".UserName")
username_tag.send_keys(username) # 输入用户名
# 定位到密码 .Password
password_tag = driver.find_element_by_css_selector(".Password")
password_tag.send_keys(wd) # 输入密码
# .code > input:nth-child(3)
code_tag = driver.find_element_by_css_selector(".code > input:nth-child(3)")
code_input = input("请输入验证码")
code_tag.send_keys(code_input) # 输入验证码 这里为手动输入,更新后会使用机器打码

3.2 登录按钮选择及回车单击

登录按钮分析:
Python爬虫技术系列-06selenium完成自动化测试V01,爬虫,python,爬虫,chrome
对应的xpath路径为

/html/body/form/div[2]/div[1]/div[4]/input

选择登录元素,并回车或左键单击

# 获取登录按钮
submit_tag = driver.find_element_by_xpath("/html/body/form/div[2]/div[1]/div[4]/input") 
# 模拟回车操作
submit_tag.send_keys(Keys.ENTER)

# 等待5s
time.sleep(5)
driver.implicitly_wait(10)

点击登录后,会跳转到个人首页。

4. 个人首页页面分析与课程选择实现

4.1 课程页面分析

登录后,跳转到个人首页:
Python爬虫技术系列-06selenium完成自动化测试V01,爬虫,python,爬虫,chrome
默认是学习为当前标签页,我们需要点击当前页面中对应的课程,打开开发者工具,
Python爬虫技术系列-06selenium完成自动化测试V01,爬虫,python,爬虫,chrome

4.2 课程页面选择并鼠标左键单击

复制对应的css选择器,并选择该课程元素:

# 对应的css选择器如下:
# div.in-c-el:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > a:nth-child(1) > img:nth-child(1)
class_01_css_selector = "div.in-c-el:nth-child(6) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > a:nth-child(1) > img:nth-child(1)"
class_01 = driver.find_element_by_css_selector(class_01_css_selector)

# 加载鼠标模拟操作
action = ActionChains(driver) 
# 模拟鼠标左键单击 并执行
action.click(class_01).perform()

点击课程后,会弹出一个新的页面–课程页面

5. 课程页面分析与进入到视频播放页

5.1 课程页面分析

注意课程页面时弹出的页面,需要手动切换selenium的当前页面。
进入课程页面后,查看页面信息,有一个继续学习的按钮,点击继续学习的按钮,可以进入到视频播放页面。
Python爬虫技术系列-06selenium完成自动化测试V01,爬虫,python,爬虫,chrome

5.2 切换当前页面,并选择继续学习按钮点击

实现步骤为:

切换当前页面
查看继续学习元素的css选择器,并选择该元素:

# 跳转到视频播放窗口
# 1. 获取打开的所有窗口
wins = driver.window_handles
print(wins) # 查看所有窗口
# 打印当前窗口的句柄
print(driver.current_window_handle)

# 2. 切换语句 切换到你想操作元素的窗口 进入新的html页面
wins[-1]
driver.switch_to.window(wins[-1])

# 3. 在新的页面中,找元素并操作
# .ml12 继续学习按钮
play_01 = driver.find_element_by_css_selector(".ml12")
# 单击继续学习按钮
action = ActionChains(driver)
action.click(play_01).perform()

点击继续学习后,会跳到到视频播放页

6. 视频播放页分析与播放实现

6.1视频播放页分析

进入到视频播放页后,点击视频播放按钮,即可播放视频
Python爬虫技术系列-06selenium完成自动化测试V01,爬虫,python,爬虫,chrome

6.2 视频播放实现

查看css选择器,选择播放按钮元素,并左键单击。

# .vjs-big-play-button 播放按钮
play_button = driver.find_element_by_css_selector(".vjs-big-play-button")
action = ActionChains(driver)
action.click(play_button).perform()

7. 视频播放完毕后,点击下一页

7.1 视频播放页下一页元素分析

视频播放页还有下一集按钮,如下:
Python爬虫技术系列-06selenium完成自动化测试V01,爬虫,python,爬虫,chrome

7.2 循环实现下一集播放

通过查看浏览器开发者工具,可以选择下一集按钮,完成当前视频播放完毕,播放下一集的功能。
需要注意的是,需要再切换下一集后,等待页面加载完成,再点击播放按钮。

print("循环开始*************")
num = 0
# 循环5次 每次都看1集
for i in range(5):
    num += 1
    print("当前的次数为:{}".format(num))
    # 下一节的css选择器 .fa-chevron-right
    play_next = driver.find_element_by_css_selector(".fa-chevron-right")
    # 点击下一页
    action = ActionChains(driver)
    action.click(play_next).perform()

    # 切换下一页后,等待一段时间
    time.sleep(5)
    driver.implicitly_wait(10)

    # .vjs-big-play-button 获取播放按钮
    play_button = driver.find_element_by_css_selector(".vjs-big-play-button")
    # 点击播放按钮
    action = ActionChains(driver)
    action.click(play_button).perform()

    # 模拟看15s
    print("开始观看第{}集".format(num))
    time.sleep(15)
    print("结束观看第{}集".format(num))

# 关闭浏览器
driver.close()

8. 运行测试

接下来右键运行,需要我们在控制台输入验证码,输入验证码后,即可完成视频的自动播放功能。文章来源地址https://www.toymoban.com/news/detail-752567.html

到了这里,关于Python爬虫技术系列-06selenium完成自动化测试V01的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Python爬虫之自动化测试Selenium#7

    在前一章中,我们了解了 Ajax 的分析和抓取方式,这其实也是 JavaScript 动态渲染的页面的一种情形,通过直接分析 Ajax,我们仍然可以借助 requests 或 urllib 来实现数据爬取。 不过 JavaScript 动态渲染的页面不止 Ajax 这一种。比如中国青年网(详见 国内_新闻频道_中国青年网),

    2024年02月20日
    浏览(40)
  • Python爬虫实战——Lazada商品数据(selenium自动化爬虫,xpath定位)

            在此说明,这个项目是我第一次真正去爬的一个网站,里面写的代码我自己都看不下去,但是已经不想花时间去重构了,所以看个乐呵就好,要喷也可以(下手轻一点)。这篇文算是记录我的学习中出现的一些问题,不建议拿来学习和真拿我的代码去爬Lazada的数据,

    2024年02月02日
    浏览(56)
  • Python-爬虫、自动化(selenium,动态网页翻页,模拟搜索,下拉列表选择、selenium行为链)

    selenium是一个Web自动化测试工具,可以直接运行在浏览器上·支持所有主流的浏览器.可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,基础页面截图等。 使用pip install selenium命令下载selenium模块。 运行下列代码: 说明没有下载对应浏览器的驱动,这里使用谷歌

    2024年02月01日
    浏览(69)
  • Python爬虫框架之Selenium库入门:用Python实现网页自动化测试详解

    是否还在为网页测试而烦恼?是否还在为重复的点击、等待而劳累?试试强大的 Selenium !让你的网页自动化测试变得轻松有趣! Selenium 是一个强大的自动化测试工具,它可以让你直接操控浏览器,完成各种与网页交互的任务。通过使用 Python 的 Selenium 库,你可以高效地实现

    2024年02月10日
    浏览(58)
  • 爬虫实战(一)Python+selenium自动化获取数据存储到Mysql中

      行话说得好,“爬虫学得好,牢饭吃到饱!”哈哈博主是因这句话入的坑,不为别的就为邀大家一起铁窗泪(bushi),本人虽小牛一只,但是喜爱捣鼓技术,有兴趣的小伙伴们可以共同探讨,也欢迎各位大佬们的指点,愿共同进步!   这次计划是翻墙爬取外网某网站

    2024年01月17日
    浏览(46)
  • 从零开始学习Python控制开源Selenium库自动化浏览器操作,实现爬虫,自动化测试等功能(一)

    介绍Selenium : Selenium是一个用于自动化浏览器操作的开源工具和库。它最初是为Web应用测试而创建的,但随着时间的推移,它被广泛用于Web数据抓取和网页自动化操作。Selenium 支持多种编程语言,包括Python,Java,C#等。 这里我们主要实现采用Python的方式 Selenium 的主要特点和

    2024年01月22日
    浏览(71)
  • python自动化测试selenium核心技术三种等待方式

    UI自动化测试过程中,可能会出现因测试环境不稳定、网络慢等情况,如果不做任何处理的话,会出现无法定位到特定元素而报错,导致自动化测试无法顺利执行。 selenium官网手册:Waits | Selenium slenium自动化测试中,主要涉及三种等待方式:     缺点:即使网络条件较好时

    2024年04月11日
    浏览(58)
  • 测试员进阶必看系列 “ python自动化测试工具selenium使用指南 ”

    概述 python+selenium环境安装 使用selenium启动浏览器 selenium页面加载等待和检测 使用time.sleep()等待 使用implicitly_wait设置最长等待时间 使用WebDriverWait设置等待条件 检测document是否加载完成 selenium元素定位和读取 查找元素 dom元素交互 查找元素失败处理 selenium交互控制 ActionChains动

    2024年02月05日
    浏览(106)
  • Selenium4.0 + Python手撸自动化框架系列之 Web截图 与 封装

    在做Web自动化时,网页截图是常用的操作。像一般的自动化框架与工具都会有截图机制,比如: 1、元素等待失败触发截图 2、元素操作失败触发截图 3、检查点失败触发截图 4、主动要求的触发截图 四种场景,均可触发网页截图操作,将截图保存到对应某个路径下面。 那么

    2024年02月08日
    浏览(69)
  • 爬虫 — 自动化爬虫 Selenium

    用 Selenium 爬取网页时,当前访问的 url 就是爬虫当中的目标 url,获取内容只要是页面上可见的,都可以爬取( 可见即可爬 )。 步骤 Selenium + 浏览器 + 浏览器驱动 1、导入 2、url(找动态 url,抓取到的数据是加密的) 3、获取内容,做解析 Selenium 是一个用于 Web 应用 程序测试

    2024年02月07日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包