当前位置: 首页 > news >正文

Selenium基础 — Selenium自动化测试框架介绍

1、什么是selenium

  • Selenium是一个用于Web应用程序测试的工具。
  • 只要在测试用例中把预期的用户行为与结果都描述出来,我们就得到了一个可以自动化运行的功能测试套件。
  • Selenium测试套件直接运行在浏览器中,就像真正的用户在操作浏览器一样。
  • Selenium也是一款同样使用Apache License 2.0协议发布的开源框架。
  • Selenium工具的主要功能包括:

         测试程序与浏览器的兼容性,测试你的应用程序是否能够很好得工作在不同浏览器和操作系统之上。
         测试系统功能,创建回归测试检验软件功能和用户需求。
 

2、selenium的特点

  1. 开源,免费
  2. 多浏览器支持:FireFox、Chrome、IE、Opera、Safari
  3. 多平台支持:linux、windows、MAC
  4. 多语言支持:java、python、ruby、php、C#、JavaScript等
  5. 对web页面有良好的支持
  6. 简单(API简单)、灵活(用开发语言驱动)
  7. 支持分布式测试用例执行
     

3、Selenium版本

从2004年至今,Selenium经历了3个版本,即Selenium1.0,Selenium2.0,Selenium3.0。

(1)Selenium1.0
Selenium 1.0包括:Selenium IDE、Selenium Grid、Selenium RC三部分。

  • Selenium IDE:是Firefox浏览器中的一个插件,实现简单的浏览器操作的录制与回放功能。生成测试用例,可将测试用例转换为其他语言的自动化脚本。如果没有编程经验,可以通过Selenium IDE来快速熟悉Selenium的命令。(只适用于火狐浏览器)
  • Selenium Grid:分布式测试。用于运行在不同的机器,不同的浏览器并行测试的工具,目的在于加快测试用例运行的速度,从而减少测试运行的总时间。利用Grid可以很方便地实现在多台机器上和异构环境中运行测试用例。
  • Selenium RC:Selenium RC是Selenium1.0核心部分。简单的说,Selenium RC的功能就是通过代码操作浏览器。
     

(2)Selenium2.0
Selenium 2.0 = Selenium 1.0 + WebDriver
WebDriver比Selenium RC功能强大且简单。WebDriver是通过原生浏览器支持或者浏览器扩展来直接控制浏览器。WebDriver针对各个浏览器而开发,使用不同浏览器都需要对应浏览器驱动,与浏览器紧密集成,因此支持创建更高级的测试,避免了JavaScript安全模型导致的限制。除了来自浏览器厂商的支持之外,WebDriver还利用操作系统级的调用,模拟用户输入。我们在使用WebDriver时,可以看到,是先启动了浏览器对应driver,通过浏览器driver启动浏览器。

(3)Selenium3.0(推荐)
Selenium 3.0在Selenium2.0的基础上有了更多的改进,支持的原生驱动方面更为丰富。
去掉了对SeleniumRC的支持。
JDK的最低版本要求为JDK8(只有在测试分布式的时候,才需要Java环境)。

(4)提示
Selenium 3.0在Selenium 2.0的基础上增加了对win10系统的Edge浏览器和Mac系统Safari浏览器的支持,并且在启动Firefox浏览器时也必须使用浏览器驱动geckodriver。去掉了Selenium RC,因此Selenium 3.0的学习核心也是WebDriver。

(5)Selenium组件总结

 

4、拓展:WebDriver与Selenium RC的区别

(1)Selenium RC
Selenium RC 使用的是javascript注入的方式跟浏览器打交道。这样Selenium RC 需要启动一个Server,然后将操作页面元素的API 转成javascript脚本,再把这段脚本注入到浏览器中去执行。而通过这种javascript注入的方式一来太依赖翻译成javascript质量的好坏,二来javascript存在同源问题。这使测试变得不那么容易。
总结:
 

  1. Selenium RC需要Selenium Server才能运行测试用例。
  2. Selenium RC使用JavaScript来驱动浏览器运行测试用例。
  3. Selenium RC只能支持Web应用的测试。
  4. Selenium RC能支持所有浏览器但并不能及时支持最新版本。

(2)WebDriver

与Selenium RC 不同的是Selenium WebDriver针对不同的浏览器进行独立开发Driver,利用浏览器的原生API去直接操作浏览器和页面元素,这样大大提高了测试的稳定性和速度。当然因为不同的浏览器对Web元素操作和呈现多多少少会存在一些差异,这也就造成现在不同的浏览器需要有对应不同的Driver。
总结:

  1. WebDriver不需要Selenium Server就可以运行测试用例。
  2. WebDriver独立使用原生浏览器来运行测试用例。
  3. WebDriver既可以测试传统桌面Web应用,也可以测试手机上的应用程序,如iPhone或Android上的app程序。
  4. WebDriver能支持大多数浏览器的最新版本。
     

总结:

 

5、Webdriver工作原理

相关文章:

Selenium基础 — Selenium自动化测试框架介绍

1、什么是selenium Selenium是一个用于Web应用程序测试的工具。只要在测试用例中把预期的用户行为与结果都描述出来,我们就得到了一个可以自动化运行的功能测试套件。Selenium测试套件直接运行在浏览器中,就像真正的用户在操作浏览器一样。Selenium也是…...

力扣竞赛勋章 | 排名分数计算脚本

文章目录 力扣竞赛勋章介绍竞赛评分算法脚本(本文的重点内容)运行结果 代码修改自:https://leetcode.cn/circle/discuss/6gnvEj/ 原帖子的代码无法正常运行。 力扣竞赛勋章介绍 https://leetcode.cn/circle/discuss/0fKGDu/ 如果你想知道自…...

win10 远程 ubuntu 18.04 桌面

win10 远程 ubuntu 18.04 桌面 我们要在Windows 10上远程连接到Ubuntu 18.04,您需要按照以下步骤进行设置: 1. 在Ubuntu 18.04上安装并启用远程桌面服务。打开终端,并运行以下命令来安装xrdp: sudo apt update sudo apt instal…...

c++ -- STL

【C/C】STL详解_cstl_沉晓的博客-CSDN博客 Learning Record have done assignment class template An excellent programmer only needs to know how to use containers to improve program encapsulation and reduce coupling, without understanding the underlying pri…...

文字识别(OCR)介绍与开源方案对比

目录 文字识别(OCR)介绍与开源方案对比 一、OCR是什么 二、OCR基本原理说明 三、OCR基本实现流程 四、OCR开源项目调研 1、tesseract 2、PaddleOC 3、EasyOCR 4、chineseocr 5、chineseocr_lite 6、cnocr 7、商业付费OCR 1)腾讯…...

Modbus tcp转ETHERCAT在Modbus软件中的配置方法

Modbus tcp和ETHERCAT是两种不同的协议,这给工业生产带来了很大的麻烦,因为这两种设备之间无法通讯。但是,远创智控YC-ECT-TCP网关的出现,却为这个难题提供了解决方案。 YC-ECT-TCP网关能够连接到Modbus tcp总线和ETHERCAT总线中…...

开源点云数据集整理汇总

目录 一、ModelNet401. 网址2. 模型 二、ShapeNet1. 网址2. 模型 三、S3DIS Dataset1. 网址2. 模型 四、ScanNet1. 网址2. 模型 五、RGB-D Object Dataset1. 网址2. 模型 六、 NYU Depth Dataset V2 (纽约大学深度数据集)1. 网址2. 模型 七、 The Stanfo…...

【全栈开发指南】VUE前端路由设计及配置

我们在使用Vue.js时,创建单页面应用一定会用到路由,Vue Router 是 Vue.js 官方的路由管理器,我们在开发框架中过程中,需要结合Vue Router路由管理器提供的功能,设计和实现系统中菜单的配置。 一、实现原理 一级菜单r…...

C语言程序环境和预处理

本章主要以图片和文字的形式给大家讲解 程序的翻译环境和程序的执行环境 在ANSI C的任何一种实现中,存在两个不同的环境。 第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 第2种是执行环境,它用于实际执行代码 2. 详解编译…...

为摸鱼助力:一份Vue3的生成式ElementPlus表单组件

目录 一、实现背景 二、简介 三、组织架构设计 四、实现方式 五、代码示例 六、示例代码效果预览 七、项目预览地址 & 项目源码地址 目前项目还有诸多待完善的地方,大家有好的想法、建议、意见等欢迎再次评论,或于github提交Issues 一、实现…...

数通工作中常见问题与解决方法

城域网,硬件,交换机开局 1、环路产生,现象,怎么解决 一般是物理拓扑存在环路,导致数据互传,Mac地址漂移,产生环路; Cpu利用率变高,端口流量接近100%,有mac…...

基于STM32+华为云IOT设计的智能浇花系统

一、前言 随着社会的不断发展和人们生活水平的逐渐提高,人们逐渐追求高质量的生活,很多人都会选择在家里或办公室种植一些花卉以净化家庭空气,陶冶情操,但是很多人忙于工作、学习、出差、旅游或者一些其他的原因,不能及时地对花卉进行照料,短时间内导致很多花卉因缺水分…...

回调函数(callback)是什么?

通俗易懂 你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。 在这个例子里,你的电话号码就叫回调函…...

零代码量化投资:用ChatGPT获取新浪财经上的股票实时行情

现在很多免费的股票数据库,比如akshare,其实是从新浪财经或者东方财富网站上爬取下来的。如果能直接从新浪财经或者东方财富网站上爬取数据,可以获取更全面更即时的信息。 可以在ChatGPT中输入提示词如下: 写一段Python代码&…...

从GitLab拉取并运行项目

从GitLab拉取并运行项目 序Git项目运行运行报错 总结教训 序 搭建好前端基础环境后,开始尝试从单位项目组拉取项目尝试本地运行。 Git Git相关配置:一篇学会Git版本管理 先申请Git账号,随后由上级分配权限拉入该项目组。 通过git clone ……...

AI绘画结合GPT 把Ai绘画与摄影玩明白

一、绘画与摄影有什么关系? 绘画和摄影是两种不同的艺术形式,它们都以其自身独特的方式捕捉和表达现实。在某些方面,它们是相互联系的,而在其他方面,它们又有所不同。​ 相似之处:绘画和摄影都是创造性的…...

哈工大计算机网络课程数据链路层协议详解之:多路访问控制(MAC)协议

哈工大计算机网络课程数据链路层协议详解之:多路访问控制(MAC)协议 在上一小节介绍完数据链路层功能和所提供的服务后,接下来我们介绍一个在数据链路层非常重要的一个协议:多路访问控制MAC协议。 多路访问控制主要是…...

docker基本概念和相关命令

!!! 前面都是概念东西,可以直接跳到Docker命令就可以了(直接搜吧“Docker命令”,页内无法跳转,还在研究中……) 容器和虚拟化 容器包含应用和其所有的依赖包,但是与其他容器共享内核。容器在宿主机操作系统中,在用户…...

43. 间断连续登录用户问题

文章目录 题目需求思路一实现一题目来源 题目需求 现有各用户的登录记录表(login_events)如下,表中每行数据为:一个用户何时登录了平台。 现要求统计各用户最长的连续登录天数,间断一天也算作连续,例如&a…...

Visual Studio Code 编辑器实用插件简介

Visual Studio Code 编辑器插件 以下是一些常用的 Visual Studio Code 编辑器插件及其简短描述: 2gua.rainbow-brackets:在括号周围添加彩虹色的边框,以帮助区分不同层次的括号。adpyke.codesnap:将代码片段转换为漂亮的图片&am…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...