Python自动化测试:web自动化测试——Selenium框架

news2024/11/22 15:10:04

web自动化测试1

  • Selenium介绍
  • web自动化实现原理
  • 环境准备
    • 1)Selenium+python环境搭建
      • 安装步骤
        • 环境变量的配置
    • 2)浏览器驱动
      • 驱动下载
      • 驱动环境配置
    • 3)版本检查
    • 4)其他异常情况排查
      • 版本不一致
      • 未激活
      • 卸载、降低/升级setuptools版本
  • web自动化测试实例test.py
  • 复杂案例:模拟12306登陆与搜索车次选座-购票

前言:使用Selenium框架进行简单web端UI自动化测试,简单的以百度搜索为例,复杂的模拟访问12306登陆、购票操作。

Selenium介绍

  • Selenium是ThroughtWorks公司一个强大的开源用于浏览器web自动化测试的工具集/框架;
  • 支持多平台、多浏览器、多语言去实现自动化测试;
  • Selenium2将浏览器原生的API封装成WebDriver API(WebDriver 通过原生浏览器支持或者浏览器扩展直接控制浏览器),可以直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书之类的),实现像真正的用户在操作一样;
  • pip组件是一个现代通用的Python包管理工具;

web自动化实现原理

在这里插入图片描述

环境准备

1)Selenium+python环境搭建

python下载:http://python.org/getit;
下载setuptools :http://pypi.python.org/pypi/setuptools
下载pip :【python 的安装包管理工具】https://pypi.python.org/pypi/pip
下载selenium:http://pypi.python.org/pypi/selenium

安装步骤

  1. 安装Python,也可安装编辑工具pycharm、vscode
    注意:pip是基于setuptools的,若安装python,就已经安装了pip了,可python的第三方包目录下(D:\CStools\python3.10.5\Lib\site-packages)看一看有没有pip包。
  2. 安装setuptools:将下载后的文件夹解压,在CMD命令窗口定位到解压后的目录下,输入python setup.py install
  3. 安装pip:连网状态(pip install pip),不联网状态需将下载后的文件夹解压,在解压后的目录下命令行中输入命令python setup.py install,再切换到现在的Python安装路径下(博主自己的路径为:D:\CStools\python3.10.5\Scripts),输入easy_install pip
  4. 安装selenium:
    * 若联网状态则可:在Python安装路径(D:\CStools\python3.10.5\Scripts)下输入pip install -U selenium;
    * 若未联网,已下载了相关压缩包解压至D:\CStools\python3.10.5\Lib\site-packages目录下,命令窗口定位到该目录输入:python setup.py install

注意:命令行CMD从默认路径C盘切换到D盘需输入D:,再cd D盘下的路径

环境变量的配置
  1. 双击安装Python-自动配置环境变量:
    在这里插入图片描述
    2.手动配置环境变量:
    在这里插入图片描述

2)浏览器驱动

驱动下载

下载驱动前查看浏览器版本:
在这里插入图片描述
火狐浏览器—驱动下载地址:https://github.com/mozilla/geckodriver/releases
谷歌浏览器—驱动下载地址:
* 114及之前的版本:下载地址入口
* 116版本:下载入口
* 117/118/119版本:下载入口
在这里插入图片描述

驱动环境配置

  1. 将下载好的驱动包解压并放入安装包中(不同浏览器操作相同):
    在这里插入图片描述
  2. 将浏览器安装路径复制下来配置到环境变量路径中:C:\Program Files\Mozilla Firefox
    在这里插入图片描述
  3. 将驱动添加到Python安装路径下:

3)版本检查

  • 以管理员的身份运行CMD,先验证你的python版本:
python --version

在这里插入图片描述

  • 查看setuptools是否安装正确:

  • 查看pip安装情况:

pip --version     # Python2.x 版本命令
pip3 --version    # Python3.x 版本命令

在这里插入图片描述

  • 查看selenium版本与安装是否成功:
pip show selenium

在这里插入图片描述

  • 也可以整个查看pip:
pip list

在这里插入图片描述

4)其他异常情况排查

版本不一致

  1. 驱动版本与浏览器版本不一致:重新下载安装配置正确的版本(最新浏览器对应最新驱动)
geckodriver.exe -h

在这里插入图片描述
2. setuptools版本错误或与Python不兼容:常常会提示NameError: name ‘execfile’ is not defined说明安装版本不对,可卸载重新安装正确版本。

未激活

原因:博主之前由于学校的项目下载了Anaconda其自带有python版本,python处于conda环境中,导致python需要激活,显示:
在这里插入图片描述
解决方法:

  1. 命令窗口输入 conda activate 进入(base)
  2. 输入conda info --envs,查看Anaconda的位置,复制base *后面的位置信息
  3. 输出conda activate base后面的路径

卸载、降低/升级setuptools版本

pip uninstall setuptools
pip install setuptools==39.1.0

web自动化测试实例test.py

以下代码实现:获取火狐浏览器驱动并控制打开浏览器主页,返回打印主页标题,退出控制

#  coding = utf-8
from selenium import webdriver

driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
print(driver.title)
driver.quit()

运行结果:
在这里插入图片描述

复杂案例:模拟12306登陆与搜索车次选座-购票

仅作为web自动化测试案例学习,不做违法使用!!!
(代更新)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1212989.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

day2324_jdbc

今日内容 零、 复习昨日 一、作业 二、SQL注入 三、PreparedStatement 四、事务 五、DBUtil 零、 复习昨日 一、引言 1.1 如何操作数据库 使用客户端工具访问数据库,需要手工建立连接,输入用户名和密码登录,编写 SQL 语句,点击执行…

沉浸式航天vr科普馆VR太空主题馆展示

科普教育从小做起,现在我们的很多地方小孩子游乐体验不单单只有草坪玩耍体验,还有很多科普知识的体验馆和游玩馆。虽然现在我们还不能真实的上太空或者潜入海底,但是这些现在已经可以逼真的展示在我们面前。通过一种虚拟现实技术手段。人们带…

深入解析JavaScript中的变量作用域与声明提升

JS中的变量作用域 背景: ​ 之前做js逆向的时候,有一个网站很有意思,就是先出现对其赋值,但是后来的变量赋值没有对其发生修改,决定说一下js中的作用域问题. 全局作用域: ​ 全局作用域的变量可以在任何…

QT使用Socket与安卓Socket互发消息

背景:安卓设备通过usb网络共享给Linux,此时安卓设备与linux处于同一网络环境,符合使用socket的条件,linux做客户端,安卓做服务端 1.QT使用Socket (1).在工程文件中加入 QT network (2).导包以及写一些槽函数用做数据传输与状态接收 #ifndef MAINWINDOW_H #define MAINWINDOW…

pycharm安装库失败

项目场景 pycharm安装第三方库 问题描述 python 安装第三方库总是安装失败 原因分析: 提示:这里填写问题的分析: 1.网络 2.网墙 解决方案: 加个镜像 –trusted-host mirrors.aliyun.com

JTS: 24 MinimumDiameter 最小矩形

文章目录 版本代码 版本 org.locationtech.jts:jts-core:1.19.0 链接: github 代码 package pers.stu.algorithm;import org.locationtech.jts.algorithm.MinimumDiameter; import org.locationtech.jts.geom.Coordinate; import org.locationtech.jts.geom.Geometry; import…

移远EC600U-CN开发板 11.15

制作一个简单UI: 1."端口设置"模块 *效果图 *代码 def backEvent(evt): #返回主界面code evt.get_code() if code lv.EVENT.CLICKED:lv.scr_load(mainInterface)def popUpEvent(evt): #弹窗提醒code evt.get_code()if code lv.EVENT.CL…

树和森林 查找

讨论3.1 黄金分割查找? 在二分查找中,我们是取mid等于left和right的中间值,即用等分的方法进行查找. 那为什么一定要等分呐?能不能进行“黄金分割”?也就是midleft0.618(right-left),当然mid要取整数。如果这样查找&…

Vue3中使用provide和inject依赖注入完成父组件和孙子组件之间参数传递

Vue3中使用provide和inject依赖注入完成父组件和孙子组件之间参数传递 官网介绍 注意以下写法都是使用setup 代码结构 依赖注入-父组件 import { ref, provide } from "vue"const outDialogCardInfo ref() function updateOutDialogCardInfo(item) {console.log…

微信这4个功能容易暴露隐私,记得关闭

每天高频使用微信的我们,常常觉得安全无忧,然而这样的想法并不准确。尽管微信本身的安全性能极高,但若我们不主动设置相关功能,个人隐私和位置信息仍可能被暴露。 在微信朋友圈上,有些人喜欢分享生活的点滴&#xff0c…

LLM(四)| Chinese-LLaMA-Alpaca:包含中文 LLaMA 模型和经过指令微调的 Alpaca 大型模型

论文题目:《EFFICIENT AND EFFECTIVE TEXT ENCODING FOR CHINESE LL AMA AND ALPACA》 ​论文地址:https://arxiv.org/pdf/2304.08177v1.pdf Github地址:https://github.com/ymcui/Chinese-LLaMA-Alpaca 一、项目介绍 通过在原有的LLaMA词…

嵌入式LINUX——环境搭建 windows、虚拟机、开发板 互ping

摘要: 本文包含,如何设置linux开发板和虚拟机、windows 互ping成功 以及设置过程中出现的虚拟机、开发板查询不到eth0 windows ping开发板出项丢包等问题的解决方式。 windows端设置 windows端插入USB转网卡 打开windows桌面下右下角的网络标识 打…

UI自动化测试(弹出框,多窗口)

一、弹出框实战 1、在UI自动化测试中经常会遇到Alert弹出框的场景。Alert类是对话框的处理,主要是对alert警告框。confirm确认框,promp消息对话框。 text():获取alert的文本 dismiss ():点击取消 accept():接受 send-keys():输入 from selenium import …

继承、多态

复习 需求: 编写一个抽象类:职员Employee,其中定义showSalary(int s)抽象方法;编写Employee的子类,分别是销售员Sales和经理Manager,分别在子类中实现对父类抽象方法的重写,并编写测试类Test查看输出结果 package cn.…

多媒体播放器Infuse mac中文版软件特点

Infuse mac是一款多媒体播放器应用,它支持播放多种格式的视频文件、音频文件和图片文件,并且可以通过AIrPlay将媒体内容投放到其他设备上。Infuse还支持在线视频流媒体播放和本地网络共享,用户可以通过它来访问家庭网络上的媒体文件。 Infuse…

<C++> 优先级队列

目录 前言 一、priority_queue的使用 1. 成员函数 2. 例题 二、仿函数 三、模拟实现 1. 迭代器区间构造函数 && AdjustDown 2. pop 3. push && AdjustUp 4. top 5. size 6. empty 四、完整实现 总结 前言 优先级队列以及前面的双端队列基本上已经脱离了队列定…

【1】Maxwell3D闭合线圈小实例仿真

//正文开始前的唠唠:首先声明,本人是00后新人小白一枚,本科计算机专业,现目前工作需要用到一些仿真工具,属于是从零开始学习仿真软件,文章内容为本人的学习笔记(所以对于小白来说非常友好&#…

折扣零售新浪潮,揭秘品牌如何盘活千家门店

近两年,随着新经济环境的革新,人们流行起了“反向消费”,开始追求高性价的特价好物。于是,顺应人们消费理念和新需求的折扣零售便开始日渐火热,也让更多品牌与资本加入折扣零售赛道。 根据《2023-2028年中国折扣商店行…

vim——“Linux”

各位CSDN的uu们好呀,今天,小雅兰的内容是Linux的开发工具——vim。下面,我们一起进入Linux的世界吧!!! Linux编辑器-vim使用 vim的基本概念 vim的基本操作 vim正常模式命令集 vim末行模式命令集 vim操…

【力扣题:循环队列】

文章目录 一.题目描述二. 思路解析三. 代码实现 一.题目描述 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好…