web 自动化之 selenium+webdriver 环境搭建及原理讲解
文章目录
- 一、web 自动化测试学习说明
- 二、什么 web 自动化测试
- 三、selenium 简介
- 四、web自动化测试环境搭建
- 五、web 自动化测试第一个脚本
- 六、selenium 原理及源码讲解
一、web 自动化测试学习说明
进阶 web 自动化测试学习:掌握 python 编程基础
二、什么 web 自动化测试
web 端测试: 对网页的测试
UI 测试: web 测试 + app 测试
web 自动化测试:通过代码对网页进行测试
UI 测试 = web 自动化测试 + APP 自动化测试
三、selenium 简介
selenium 是企业主流应用广泛 web 自动化测试框架
selenium 的三大组件:
1、selenium IDE 浏览器插件:实现脚本录制
2、WebDriver 实现对浏览器的各种操作(API 包)
3、Grid 分布式执行,用例同时在多个浏览器同时执行,提搞测试效率
四、web自动化测试环境搭建
环境搭建步骤:
1、安装 selenium (第三方库)
cmd 命令:pip install selenium
2、安装浏览器(谷歌浏览器)
常见浏览器:chrome 浏览器、IE 浏览器、Firefox 浏览器
3、安装浏览器驱动
chrome 浏览器驱动:chromedriver.exe
IE 浏览器驱动:ieserverdriver.exe
Firefox 浏览器驱动:geckodirver.exe
特别注意事项:下载驱动版本必须与浏览器的版本一致
chrome 浏览器驱动下载地址
chromedriver.exe 文件放置到 python 安装路径(python.exe 所在的路径)
五、web 自动化测试第一个脚本
打开浏览器,加载项目地址
from selenium import webdriver# 指令1:打开浏览器
driver=webdriver.Edge()
# 指令2:加载项目地址
driver.get("https://www.baidu.com")
# 不断发送其他指令:不同指令操控浏览器做不同的事情
六、selenium 原理及源码讲解
selenium 脚本如何操控浏览器进行对应的操作?
三者如何通信,实现 web 自动化测试:
结合 selenium 源码讲解 selenium 的原理:
- 1、启动浏览器驱动(chromedriver.exe)服务
- 2、selenium 脚本与浏览器驱动建立连接,再 selenium 脚本发送指令(基于 http 通信)
(发送指令给浏览器驱动,浏览器驱动控制浏览器操作)
不同的指令对浏览器进行不同的操作
指令包(API包):JsonWireProtocol( JWP)
JsonWireProtocol ∙ SeleniumHQ/selenium Wiki ∙ GitHub
打开浏览器,执行的命令:
response = self.execute(Command.NEW_SESSION, parameters)
指定请求地址 http://ip:端口号/路径+请求方式+请求参数
response = self.command_executor.execute(driver_command, params)
相关文章:

web 自动化之 selenium+webdriver 环境搭建及原理讲解
文章目录 一、web 自动化测试学习说明二、什么 web 自动化测试三、selenium 简介四、web自动化测试环境搭建五、web 自动化测试第一个脚本六、selenium 原理及源码讲解 一、web 自动化测试学习说明 进阶 web 自动化测试学习:掌握 python 编程基础 二、什么 web 自…...

2025ISCC练武校级赛部分题解WP
Web 战胜卞相壹 <!-- 路过的酒罐王柯洁九段说: --> <!-- 会叠棋子有什么用!你得在棋盘内战胜他!我教你个定式,要一直记得!一直! --> <!-- SGF B[ae];B[ce];B[df];B[cg];B[ag];B[ai];B[ci];…...

PyTorch 版本、torchvision 版本和 Python 版本的对应关系
PyTorch 版本、torchvision 版本和 Python 版本的对应关系 在深度学习领域,PyTorch 及其配套库 torchvision 的使用极为广泛。但不同版本的 PyTorch、torchvision 与 Python 之间存在严格的对应关系,若版本搭配不当,会导致代码运行出错…...
uniapp-商城-49-后台 分类数据的生成(方法加精)
前面47和48章节对代码进行了分析和解读。但是还是又很多地方需要加精。如方法中的注释,执行中的提示,特别是添加和修改中,相关值的初始化,另外还有页面的刷新,并且在页面刷新时的异步操作 同步化实现。 但这里唯一不好…...
nginx 配置后端健康检查模块
nginx自带的针对后端节点健康检查的功能比较简单,通过默认自带的ngx_http_proxy_module 模块和ngx_http_upstream_module模块中的参数来完成,当后端节点出现故障时,自动切换到健康节点来提供访问。但是nginx不能事先知道后端节点状态是否健康,后端即使有不健康节点,负载均…...

RS485和RS232 通信配置
RS232 目前硬件上支持RS232的有以下板卡: LubanCat-5IO底板(含有RS232x2) 7.1. 引脚定义 具体的引脚定义可以参考背面的丝印 LubanCat-5IO底板 引脚定义图 7.2. 跳帽配置 LubanCat-5IO底板 鲁班买5IO底板上的RS485和RS232是共用同一组…...

zst-2001 历年真题 设计模式
设计模式 - 第1题 a 设计模式 - 第2题 一个产品可以产生多个就是抽象,一个就是工厂 比如这样 第二题a是意图 bc: d 设计模式 - 第3题 b 设计模式 - 第4题 类图里全是builder,疯狂暗示 设计模式 - 第5题 aa 设计模式 - 第6题 只有工厂方法是创…...
微软系统 红帽系统 网络故障排查:ping、traceroute、netstat
在微软(Windows)和红帽(Red Hat Enterprise Linux,RHEL)等系统中,网络故障排查是确保系统正常运行的重要环节。 ping、traceroute(在Windows中为tracert)和netstat是三个常用的网络…...
11.多用组合和少继承
11.多用组合和少继承 目录介绍 01.前言思考的介绍 1.1 组合优于继承思考1.2 实际中的案例1.3 思考继承的争议 02.绘图应用程序案例 2.1 案例的背景2.2 用继承实现多形状2.3 用组合实现多形状 03.不同鸟类程序案例 3.1 案例的背景3.2 用继承实现多鸟类3.3 继承的问题暴露3.4 用…...
【AWS+Wordpress】将本地 WordPress 网站部署到AWS
前言 自学笔记,解决问题为主,亲测有效,欢迎补充。 本地开发机:macOS(Sequoia 15.0.1) 服务器:AWS EC2(Amazon Linux 2023) 目标:从本地迁移 WordPress 到云…...

鸿蒙NEXT开发动画案例4
1.创建空白项目 2.Page文件夹下面新建Spin.ets文件,代码如下: /*** TODO SpinKit动画组件 - 双粒子旋转缩放动画* author: CSDN-鸿蒙布道师* since: 2025/05/08*/ ComponentV2 export struct SpinFour {// 参数定义Require Param spinSize: number 36…...
Java(day136):Arrays.asList() 方法:如何在 Java 中高效地将数组转化为列表!
前言 在 Java 编程中,数组和集合是两种常用的数据结构。数组是固定大小的容器,而集合则是动态扩展的容器。随着 Java 集合框架的引入,开发者通常更倾向于使用集合类来存储和操作数据,因为集合类提供了更多的功能和灵活性。 然而&a…...

XML语言
XML语言 在开始介绍Mybatis之前,先介绍一下XML语言,XML语言发明最初是用于数据的存储和传输,它是由一个一个的标签嵌套而成 <?xml version"1.0" encoding"UTF-8" ?> <outer> <name>阿伟</name&…...

基于SpringBoot的小区停车位管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...

VR博物馆,足不出户云逛展
VR博物馆概念与特点 定义与由来 VR博物馆,即虚拟现实(Virtual Reality)博物馆,是利用计算机技术、互联网和虚拟现实技术,将实体博物馆及其藏品数字化,实现在虚拟空间中的展示和体验的新型博物馆形式。概念起源于20世纪90年代末&…...

uniapp|实现多终端聊天对话组件、表情选择、消息发送
基于UniApp框架,实现跨平台多终端适配的聊天对话组件开发、表情选择交互设计及消息发送,支持文本与表情混合渲染。 目录 聊天界面静态组件实现消息列表布局消息气泡双向布局辅助元素定位与样式静态数据模拟与扩展性设计表情选择器静态模块浮层实现符号网格排列多端样式适配方…...

73页最佳实践PPT《DeepSeek自学手册-从理论模型训练到实践模型应用》
这份文档是一份关于 DeepSeek 自学手册的详细指南,涵盖了 DeepSeek V3 和 R1 模型的架构、训练方法、性能表现以及使用技巧等内容。它介绍了 DeepSeek V3 作为强大的 MoE 语言模型在数学、代码等任务上的出色表现以及其训练过程中的创新架构如多头潜在注意力和多 To…...

stm32 WDG看门狗
目录 stm32 WDG看门狗一、WDG基础知识1)WDG(Watchdog)看门狗简介 二、IWDG独立看门狗1)IWDG键寄存器2)IWDG超时时间 三、WWDG窗口看门狗1)WWDG框图2)WWDG工作特性3)WWDG超时时间4&am…...

BUUCTF——Cookie is so stable
BUUCTF——Cookie is so stable 进入靶场 页面有点熟悉 跟之前做过的靶场有点像 先简单看一看靶场信息 有几个功能点 flag.php 随便输了个admin 根据题目提示 应该与cookie有关 抓包看看 构造payload Cookie: PHPSESSIDef0623af2c1a6d2012d57f3529427d52; user{{7*7}}有…...

用go从零构建写一个RPC(仿gRPC,tRPC)--- 版本1(Client端)
这里我们来实现这个RPC的client端 为了实现RPC的效果,我们调用的Hello方法,即server端的方法,应该是由代理来调用,让proxy里面封装网络请求,消息的发送和接受处理。而上一篇文章提到的服务端的代理已经在.rpc.go文件中…...

一文读懂 AI
2022年11月30日,OpenAI发布了ChatGPT,2023年3月15日,GPT-4引发全球轰动,让世界上很多人认识了ai这个词。如今已过去快两年半,AI产品层出不穷,如GPT-4、DeepSeek、Cursor、自动驾驶等,但很多人仍…...
第三天 车联网云架构
一、车联网技术演进与行业变革 1.1 从传统Telematics到智能网联汽车 当我们驾驶着搭载智能网联系统的汽车时,车辆每秒会产生超过1GB的数据流量。这些数据包括: 高精度地图的实时更新ADAS传感器采集的环境信息车载娱乐系统交互数据车辆状态监控信息传统基于2G/3G的Telematic…...

【LeetCode Hot100 | 每日刷题】二叉树的层序遍历
题目: 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]]示例 2&a…...
Unity垃圾回收(GC)
1.GC的作用:定期释放不再使用的内存空间。 注:C不支持GC,需要手动管理内存,使用new()申请内存空间,使用完后通过delete()释放掉,但可能出现忘记释放或者指针…...

SpringBoot3集成Oauth2——1(/oauth2/token方法的升级踩坑)
备注:本文适用于你在SpringBoot2.7以前集成过oauth2,并且项目已经正式投入使用的情况,否则,我建议你直接学习或者找资料学习最新的oauth2集成,就不要纠结于老版本的oauth2。 原因:Spring Security 5.x和Sp…...
MySQL 索引与事务详解
目录 一、索引(Index) 二、事务(Transaction) 三、总结 一、索引(Index) 索引的本质:一种数据结构(如 BTree、Hash),用于快速定位数据,避免全…...

基于Qt开发的多线程TCP服务端
目录 一、Qt TCP服务端开发环境准备1. 项目配置2. 核心类说明 二、服务端搭建步骤详解步骤1:初始化服务端对象步骤2:启动端口监听步骤3:处理客户端连接 三、数据通信与状态管理1. 数据收发实现2. 客户端状态监控 四、进阶功能扩展1. 多客户端…...
【Debian】关于LubanCat-RK3588s开发板安装Debian的一些事
琐碎的事问题不少,甚至一度让我以为核心坏了 按照指引烧录完Debian11-gnome镜像后启动,此时输出的分辨率不一定匹配显示器,进而导致黑屏,此时需要使用MobaXterm的串口终端以运行一些指令,下载链接用xrandr指令查看显示…...
Python爬虫实战:研究网站动态滑块验证
1. 引言 1.1 研究背景与意义 在当今信息时代,Web 数据的价值日益凸显。通过爬虫技术获取公开数据并进行分析,能够为企业决策、学术研究等提供有力支持。然而,为了防止数据被恶意爬取,许多网站采用了各种反爬机制,其中动态滑块验证是一种常见且有效的方式。动态滑块验证通…...

Centos离线安装mysql、redis、nginx等工具缺乏层层依赖的解决方案
Centos离线安装mysql、redis、nginx等工具缺乏层层依赖的解决方案 引困境yum-utils破局 引 前段时间,有个项目有边缘部署的需求,一台没有的外网的Centos系统服务器,需要先安装jdk,node,mysql,reids…...