Selenium Webdriver原理、架构过往今生

news2024/11/22 14:37:57

下方查看历史精选文章

重磅发布 - 自动化框架基础指南pdfv1.1
大数据测试过程、策略及挑战

测试框架原理,构建成功的基石

在自动化测试工作之前,你应该知道的10条建议

在自动化测试中,重要的不是工具

简介

Selenium是一种流行的自动化测试工具,它可以自动化地模拟用户在Web应用程序中的操作,包括点击、输入、选择等。Selenium最初由Jason Huggins于2004年创建,旨在解决常见的Web应用程序自动化测试挑战。Selenium的成长历程经历了多次技术变迁和架构的调整,今天我们将探讨这些变化。

Selenium原理

Selenium的原理是通过一系列的API来模拟用户操作。这些API包括:

  • WebDriver API:通过Web浏览器驱动程序来模拟用户操作,例如点击、输入、选择等。

  • Selenium RC API:使用JavaScript来模拟用户操作,例如鼠标移动、键盘输入等。

  • Selenium IDE:使用JavaScript脚本来模拟用户操作,例如点击、输入、选择等。

Selenium的原理是将这些API结合起来,以便自动化地模拟用户在Web应用程序中的操作。

Selenium架构

Selenium的架构经历了多次演变,从最初的Selenium Core到Selenium WebDriver的出现,再到Selenium Grid的推出。下面我们将分别介绍这三个版本的Selenium架构。

Selenium Core

Selenium Core是Selenium的最初版本,它基于JavaScript,通过JavaScript脚本来模拟用户操作。Selenium Core的主要问题是它依赖于浏览器的安全设置,如果浏览器的安全设置不允许JavaScript执行,则无法使用Selenium Core。

Selenium WebDriver

Selenium WebDriver是Selenium的第二个版本,它是基于WebDriver API构建的。WebDriver API是一组与浏览器通信的API,它可以与多种不同的浏览器进行交互,包括Chrome、Firefox、Safari等。Selenium WebDriver解决了Selenium Core的主要问题,它可以在任何浏览器中使用,并且提供了比Selenium Core更好的性能和可靠性。

Selenium Grid

Selenium Grid是Selenium的第三个版本,它是基于Selenium WebDriver API构建的。Selenium Grid的主要功能是允许用户在多个计算机上并行运行测试,从而加快测试速度。Selenium Grid还支持在不同的浏览器和操作系统上运行测试,从而提高测试的兼容性。

技术变更

随着时间的推移,Selenium经历了多次技术变更和架构调整。下面我们将介绍一些主要的技术变更。

Selenium IDE

Selenium IDE是Selenium的一种工具,它是一种浏览器插件,可以帮助用户快速创建和编辑测试脚本。Selenium IDE最初是基于Selenium Core构建的,但在Selenium WebDriver出现后,Selenium IDE也进行了相应的更新。现在,Selenium IDE已经可以与Selenium WebDriver集成,并支持多种浏览器。

Selenium 2

Selenium 2是Selenium WebDriver的另一种名称。Selenium 2将Selenium WebDriver作为Selenium的核心,并提供了一些新的功能,例如支持多浏览器测试和改进的错误处理。

Selenium 3

Selenium 3是Selenium的最新版本,它在性能和稳定性方面进行了一些改进。Selenium 3还引入了一个新的WebDriver API,称为“WebDriver W3C标准”,它提供了一种更简单和更稳定的方式来与浏览器进行通信。

总结

Selenium是一种流行的自动化测试工具,它可以帮助测试人员轻松地实现自动化测试。Selenium的成长历程经历了多次技术变更和架构调整,从最初的Selenium Core到Selenium WebDriver的出现,再到Selenium Grid的推出。Selenium一直在不断发展,今天的Selenium 3已经成为Selenium的最新版本,它在性能和稳定性方面进行了一些改进,提供了更好的用户体验。

f2127041084ede02b601262523465930.jpeg

4a23ff09f03a5702302d246b3919a420.png

微信搜一搜 或 长按加群

e538764b7ed14ac1234f0e9da04b10f2.png

开源优测

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

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

相关文章

[深度学习入门案例2]基于卷积神经网络与Keras构建人脸识别模型

文章目录 一、工具与环境 二、深度学习环境的搭建 三、基于卷积神经网络人脸识别模型的构建与测试 1.核心代码 第一步:采集自己和他人的人脸特征数据,分别对应数据标签0和1 第二步:训练识别人脸特征的模型,并将模型保存为.h5…

网络排障全景指南手册v1.0pdf 全网发布

大家好,这里是极客重生,我是大师兄,我把之前关于丢包排障文章整理了一下,形成一个网络丢包排障手册pdf文档 ,希望可以帮助大家快速排障网络问题。 当前版本主要针对是服务端网络问题排障,包括网卡&#xff…

怎么将文件转为扫描件

推荐两个工具,也算是给自己记一下 1、手机:扫描全能王APP 太好使了,可以直接拍照并转换为扫描件 不开会员的话会出现水印,因为我都是自己用或者交作业就没开 支持读取相册,一次一张、多张都可以 如果不想要水印也…

chatgpt赋能python:Python制图:让数据图像化

Python制图:让数据图像化 数据可视化是近年来越来越流行的技术,其能够将大量的数字和信息变成直观有趣的图形。Python是一个广泛使用的编程语言,也是制图利器。Python的绘图库非常丰富,包括流行的Matplotlib、Seaborn和Plotly等&…

进程的控制

文章目录 1. Linux线程创建和等待2. 线程ID3. 线程的局部存储4. 分离线程 1. Linux线程创建和等待 这是前面写过的创建线程的代码,现在我们把线程的ID打印看一下: 我们可以看到线程的id特别大,这是为什么呢?我们后面再说。 如果…

一文简介Spring的IOC和AOP

1、IOC 概念:所谓控制反转,就是把原先我们代码里面需要实现的对象创建、依赖的代码,反转给容器来帮忙实现。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。 …

飞桨AI Day落地澳门高校!助力大湾区打造产教融合新范式

为了推动大湾区建设产教融合的人工智能技术生态,加快培养助力社会经济高质量发展的复合型 AI 人才,飞桨校园 AI Day 登陆澳门,开展《AI 技术发展趋势与人才培养》主题讲座 ,邀请多位澳门科技大学及百度嘉宾,解读当下AI…

【中兴ZXV10 B860A1.1】

这里写自定义目录标题 开启adb开启adb 部分盒子的ADB调试位置,在设置页面中可以有开启开发者选项。地区界面不同,位置不同有的在设置里。 如果找不到,直接按住遥控器【返回】不放,5秒后,快速不停按【左键】。 点击【打开ADB调试】这时侯让你输入密码 下载zikaikeji.ap…

chatgpt赋能python:Python如何创建集合——你必须知道的所有知识

Python 如何创建集合——你必须知道的所有知识 作为一位有10年 Python 编程经验的工程师,我可以告诉你,Python 集合是编程中非常重要的一部分。如果你不知道如何创建集合,那么你可能会错过很多东西。所以,让我们深入探讨 Python …

提供一个使用Npoi生成excel文档的例子,应能帮助到各位使用Npoi的朋友,因为具有多种情形处理

提供一个使用Npoi生成excel文档的例子,应能帮助到各位使用Npoi的朋友,因为具有多种情形处理 照例,文章开始之前,先看下最终效果: 实现的需求点如下: 1.第一行大标题加了背景色,且这个背景色&…

解密 JS 参数:逆向工程的实用技巧

大家好,我是安果! 大部分网站都会对关键参数进行加密,JS 逆向时,我们首要任务是定位参数具体的加密逻辑 常见方式包含:关键字搜索、堆栈调试、XHR 及事件监听、AST 内存漫游、JS Hook 注入等 本篇文章以 JS Hook 注入定…

惊爆!Python打造花式照片墙!

大家注意:因为微信最近又改了推送机制,经常有小伙伴说错过了之前被删的文章,比如前阵子冒着风险写的爬虫,再比如一些限时福利,错过了就是错过了。 所以建议大家加个星标,就能第一时间收到推送。&#x1f44…

NXP IMX8M + Ethercat+Codesys工业实时运动控制解决方案

面向边缘计算应用的全新i.MX 8M Plus异构应用处理器,搭载专用神经网络加速器、独立实时子系统、双摄像头ISP、高性能DSP和GPU。 恩智浦半导体宣布推出i.MX 8M Plus应用处理器,进一步丰富其业界领先的产品组合。这是恩智浦首个集成了专用神经处理引擎&…

G0第25章:Gin框架进阶项目实战

1 Gin框架源码解析 通过阅读gin框架的源码来探究gin框架路由与中间件的秘密。 1.1 Gin框架路由详解 gin框架使用的是定制版本的httprouter,其路由的原理是大量使用公共前缀的树结构,它基本上是一个紧凑的Trie tree 或者只是(Radix Tree&am…

Linux Tomcat服务 虚拟主机 多实例部署

Tomcat 服务 Tomcat 是 Java 语言开发的,Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器。Tomcat 属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 java开发的JSP 动态页面程序的首选。一般…

Linux教程——常见Linux发行版本有哪些?

新手往往会被 Linux 众多的发行版本搞得一头雾水,我们首先来解释一下这个问题。 从技术上来说,李纳斯•托瓦兹开发的 Linux 只是一个内核。内核指的是一个提供设备驱动、文件系统、进程管理、网络通信等功能的系统软件,内核并不是一套完整的…

DDD领域模型

一、分层介绍 controller层:处理页面或者api请求的输入输出,定义VO(REQ,RES),没有业务逻辑,只做请求处理和下层逻辑接application层:处理跨领域domain的复杂逻辑,定义DTOdomain层:领域核心逻辑…

深入理解Qt多线程编程:QThread、QTimer与QAudioOutput的内在联系__QObject的主线程的事件循环

深入理解Qt多线程编程:QThread、QTimer与QAudioOutput的内在联系__QObject的主线程的事件循环 1. Qt多线程编程的基础1.1 QObject和线程(QObject and Threads)1.2 QThread的使用和理解(Understanding and Using QThread&#xff0…

C#,码海拾贝(35)——求“实对称矩阵““特征值与特征向量“的“雅可比法“之C#源代码

using System; namespace Zhou.CSharp.Algorithm { /// <summary> /// 矩阵类 /// 作者&#xff1a;周长发 /// 改进&#xff1a;深度混淆 /// https://blog.csdn.net/beijinghorn /// </summary> public partial class Matrix {…

编码器 | 基于 Transformers 的编码器-解码器模型

基于 transformer 的编码器-解码器模型是 表征学习 和 模型架构 这两个领域多年研究成果的结晶。本文简要介绍了神经编码器-解码器模型的历史&#xff0c;更多背景知识&#xff0c;建议读者阅读由 Sebastion Ruder 撰写的这篇精彩 博文。此外&#xff0c;建议读者对 自注意力 (…