Web 自动化测试案例(入门级)——关闭某视频网站弹出广告以及打开登录框输入内容

news/2024/12/2 18:34:37/

文章目录

  • 📋前言
  • 🎯自动化测试
    • 🧩环境的搭建
  • 🎯案例介绍
  • 📝最后


在这里插入图片描述

📋前言

人生苦短,我用Python。许久没写博客了,今天又是久违的参与话题的讨论,话题的内容是:如何入门 Python 的? 这个话题对于我来说有点小尴尬,因为我没有系统的学习过 Python 这门语言,只不过在写些算法题、小demo接触过,还有就是帮朋友搞大数据作业时(爬取数据、分析数据什么的),但是我之前参加软件测试比赛时接触过 Web 自动化测试 ,里面的代码涉及到了 Python 。因此这篇文章我来介绍一个简单入门级的 Web 自动化测试 案例。(说到这突然想起来之前还用 Python 大规模修改图片文件的后缀,还有 Web hook 的一些操作)
在这里插入图片描述
下面附上一张我在软件测试比赛中 Web 自动化测试 内容的题目。
在这里插入图片描述


🎯自动化测试

Web 自动化测试 是一种自动化测试方法,它主要是通过模拟用户的行为来对 Web 应用进行测试。在 Web 自动化测试 中,我们可以使用自动化测试工具和框架来编写自动化测试脚本,自动执行测试过程,并生成测试报告。

在进行 Web 自动化测试 时,需要注意以下几个方面:

  • 测试环境的搭建;
  • 自动化测试脚本的编写和维护;
  • 测试数据的管理;
  • 测试用例的设计和执行;
  • 测试报告的生成和分析。

在这里插入图片描述

🧩环境的搭建

上面说到测试环境的搭建,因此接下我们详细讲讲本次案例所要用到的测试环境。

1️⃣Python
本次案例必不可少的开发环境!!!

💻安装步骤:
官方下载地址:https://www.python.org/downloads/

看图片步骤(旧图)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
cmd测一下是否安装成功,出现版本信息则安装成功。
在这里插入图片描述


2️⃣Selenium
Selenium 是一个用于 Web 应用程序测试的工具。Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。

💻安装步骤:
通过cmd安装,或者通过 PyCharm 软件的设置安装。

cmd安装(旧图)。

pip install selenium==3.141.0

在这里插入图片描述
cmd测一下是否安装成功,出现版本信息则安装成功。

pip show selenium

在这里插入图片描述


通过 PyCharm 软件的设置安装。
打开设置。
在这里插入图片描述
找到项目 => Python解释器 => 点击 + 号安装。
在这里插入图片描述
选择版本安装即可。
在这里插入图片描述


3️⃣PyCharm
PyCharm是一种Python IDE(Integrated Development Environment,集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制。

💻安装步骤:
官方下载地址:https://www.jetbrains.com/pycharm/

看图片步骤(旧图)。
在这里插入图片描述
在这里插入图片描述


4️⃣Chrome Driver
PyCharm是一种Python IDE(Integrated Development Environment,集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制。

💻安装步骤:
官方下载地址:https://chromedriver.chromium.org/downloads

首先打开谷歌浏览器,查看其版本。(查看的步骤如下图)
在这里插入图片描述
然后根据下图步骤操作。
在这里插入图片描述


🎯案例介绍

这是一个使用 PythonSelenium 进行自动化测试的例子,代码主要实现了以下几个功能:

  • 打开某视频网站。
  • 关闭网页上的广告。
  • 窗口最大化。
  • 点击登录按钮进行登录操作。
  • 在登录窗口中选择密码登录,并输入手机号和密码。
  • 点击登录按钮进行登录。

示例代码:

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC# 定义 CSS Selector 和 XPATH 值
URL = "https://www.xxx.com/"
ADS_CLOSE_BTN = "body > div.header__ele > div:nth-child(3) > div.header__promotion__popup > img"
LOGIN_BTN = "/html/body/div[1]/div/div/div[1]/div[4]/header/div/div/div[3]/div[8]/div/div[1]/div[1]/div/span"
USERNAME_INPUT = "username"
PASSWORD_INPUT = "password"
LOGIN_METHOD = "body > div:nth-child(16) > div > div.qy-login-container > div.qy-login-container-right > div.qy-login-main > div > div > div > div:nth-child(2) > div.qy-login-methods > div:nth-child(3)"
LOGIN_BTN_SUBMIT = "body > div:nth-child(16) > div > div.qy-login-container > div.qy-login-container-right > div.qy-login-main > div > div > div > div:nth-child(1) > div.qy-login-field > div.qy-login-btn > div > div"# 创建 Chrome 浏览器实例
driver = webdriver.Chrome()# 打开爱奇艺网站
driver.get(URL)# 关闭广告
close_btn = driver.find_element(By.CSS_SELECTOR, ADS_CLOSE_BTN)
close_btn.click()# 窗口最大化
driver.maximize_window()# 点击登录按钮
login_btn = driver.find_element(By.XPATH, LOGIN_BTN)
login_btn.click()# 选择密码登录
wait = WebDriverWait(driver, 10)
login_method = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, LOGIN_METHOD)))
login_method.click()# 输入用户名和密码
username_input = driver.find_element(By.NAME, USERNAME_INPUT)
username_input.send_keys("15588886666")password_input = driver.find_element(By.NAME, PASSWORD_INPUT)
password_input.send_keys("123")# 点击登录按钮
login_submit_btn = driver.find_element(By.CSS_SELECTOR, LOGIN_BTN_SUBMIT)
login_submit_btn.click()# 关闭浏览器
time.sleep(3)
driver.quit()

这段代码优化了以下几个地方:
使用隐式等待或显示等待来代替 time.sleep() 方法,以提高代码的健壮性和性能。例如可以使用 driver.implicitly_wait(10) 来设置隐式等待时间,在此期间 Selenium 会等待页面元素出现,如果在超时时间内元素没有出现,则抛出 NoSuchElementException 异常。

使用 find_elements() 方法代替 find_element() 方法。find_element() 方法会返回页面上第一个符合条件的元素,如果元素不存在则抛出 NoSuchElementException 异常。而 find_elements() 返回的是页面上所有符合条件的元素,这样可以避免因为页面结构变化导致无法找到指定元素的问题。

可以将一些重复的 CSS SelectorXPATH 值定义为变量,以便后续代码的维护和扩展。


📝最后

Python 是一种高级、解释型、面向对象的编程语言,具有简单易懂、易维护、可扩展性强和极高的开发效率等特点。由于其广泛应用于数据科学、机器学习、人工智能等领域,因此也被称为“最适合初学者的编程语言”。

随着人工智能技术的不断发展,Python 的使用范围也越来越广泛,例如在数据处理、计算机视觉、自然语言处理、智能控制等领域都有广泛的应用。由于 Python 具备良好的生态环境和社区支持,以及越来越多的第三方库和工具的加入,使得Python成为了一个拥有无限可能的编程语言。

最后想说的是:人生苦短,我用Python。
在这里插入图片描述


http://www.ppmy.cn/news/100355.html

相关文章

驱动LSM6DS3TR-C实现高效运动检测与数据采集(2)----配置滤波器

工作模式 在LSM6DS3TR-C中,加速度计和陀螺仪可以独立地开启/关闭,并且可以拥有不同的ODR和功耗模式。 LSM6DS3TR-C有三种可用的操作模式: ● 仅加速度计活动,陀螺仪处于断电状态 ● 仅陀螺仪活动,加速度计处于断电状态…

stack的模拟实现

前言 stack是容器适配器,它的底层是通过复用其他容器来实现的,STL中stack是通过deque来实现的。想要重复的理解stack的使用,对于去了解底层的原理 也是很重要的。接下来让我们一起来实现一下stack。 目录 1.stack的接口说明 2.stack的模拟…

任务系统(二)

文章逻辑关系,确定音符,为逻辑简谱。.以NPC的对话,确定音慕任务,以逻辑关系,符合逻辑简谱,接取任务,获得道具奖励。 解释: 这是一个基于对话的任务系统。它由以下几部分组成&#…

跨域 + 四种解决办法

目录 同源策略 解决方案 1、jsonp 2、前端代理 3、后端解决 4、Nginx代理 同源策略 说到跨域就不得不提到同源策略,什么是同源策略? 请求的时候拥有相同的 协议 域名 端口 只要有一个不同就属于跨域 解决方案 解决跨域问题一共有四种方式&#xff…

HashMap 1.8全流程分析,详解put、resize、遍历等相关函数。以及其内部的二进制原理

简介 从常用属性->构造方法->添加->扩容->查询->删除->遍历的顺序进行HashMap源码阅读,涉及到一些二进制的用法以及意义也会进行说明。 HashMap源码解析 简介 HashMap采用了hash 表的数据结构进行实现,在key未存在hash冲突的情况下&…

c#快速入门(2)

欢迎来到Cefler的博客😁 🕌博客主页:那个传说中的man的主页 🏠个人专栏:题目解析 🌎推荐文章:题目大解析2 目录 👉🏻类、对象、类成员简介👉🏻语句…

浅尝RTSP

RTSP (real time streaming protocol) RTC2326 RTSP 实时流传输协议,是TCP/IP 协议体系中的一个应用层协议,由哥伦比亚大学, 网景和realnetworks公司提交的IETF RTC 标准,该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。 RTSP在体系结构上位于 rtp…

linux互斥锁(pthread_mutex)知识点总结

对于多线程程序来说,我们往往需要对这些多线程进行同步。同步(synchronization)是指在一定的时间内只允许某一个线程访问某个资源。而在此时间内,不允许其它的线程访问该资源。我们可以通过互斥锁(mutex)&a…