selenium发展史

2024-05-16 15:36
文章标签 selenium 发展史

本文主要是介绍selenium发展史,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Selenium Core

        2004 年,Thoughtworks 的工程师 Jason Huggins 正在负责一个 Web 应用的测试工作,由于这个项目需要频繁回归,这导致他不得不每天做着重复且低效的工作。为了解决这个困境,Jason 开发了一个运行在 JavaScript 沙箱中的 E2E 测试工具,并将其命名为 JavaScript Test Runner 的工具。
        后来他的团队在此基础上完善了很多 API,这个工具后来被称为 Selenium Core,也是 Selenium 的雏形。这时的 Selenium Core 只支持 JS 编写的测试脚本,且只能在本地运行。

Selenium 1.0

        2006年, Selenium Core 团队在之前的基础上,发布了三个新工具:Selenium IDE、Selenium Grid、Selenium RC(RC 是 Remote Control 的简写),这就是第一版 Selenium。所以 Selenium 1.0 指的是这三个工具所组成的系统。Selenium 1 的发布,让多种不同语言的开发者可以控制浏览器,很多之前需要人工完成的工作得以自动化。但 Selenium 1 仍有不少问题,比如它不能捕获本机的键盘和鼠标事件。

  • Selenium IDE 用来录制及回放简单的测试用例脚本;
  • Selenium Grid 用来支持分布式运行测试脚本;
  • Selenium Remote Control (RC) : 等于 Client Libraries + Selenium Serve, Selenium Clinet用于编写测试脚本; Selenium Server用来控制浏览器行为,
  • Client Libraries(Selenium Client):你可以将它理解为一个工具库,它是 Selenium Server 提供的 API 的集合,主要用于编写测试脚本。
  • Selenium Server :用来控制浏览器行为,它主要包含三个部分:1.Selenium Launcher 用于启动浏览器,把 Selenium Core 加载到浏览器页面当中,并把浏览器的代理设置为 Selenium Server 的 Http Proxy。   2.Selenium Core :是一个带断言库的 test suite runner,由 Selenium Server 注入到浏览器中,它是 JavaScript 函数的集合,Selenium 通过这些函数对浏览器进行操作。  3.Selenium HTTP Proxy:顾名思义就是个代理服务,接受和处理脚本的 HTTP 请求

WebDriver

        在 Selenium 1.0 发布的 2006 年,Google 工程师 Simon Stewart 发起了一个名为 WebDriver 的项目。它也是一个自动化测试工具,彼时刚刚起步,后来它也将成为 Selenium 的竞品之一。

        导致 Selenium 1 各种问题的一个主要原因是,Selenium 是通过在浏览器中注入 JavaScript 应用,并通过执行应用中的各种 JS 函数来实现对浏览器的控制。而 Simon 希望 WebDriver 能通过浏览器提供的 API 来直接操作浏览器,借此来规避在 JS 沙箱中的各种限制。

        经过几年的发展,WebDriver 通过与各浏览器的集成,成功实现了在外部直接控制浏览器行为的目标,同时 WebDriver 还利用操作系统级的调用,支持模拟用户输入。同时 WebDriver 还针对不同浏览器有着不同的策略,比如当操作 Firefox 浏览器的时候,WebDriver 是用 JavaScripts 来调用 API 的;而当我们操作 IE 浏览器的时候,WebDriver 就用 C++ 了。

        直到这时,WebDriver 成为了 Selenium 1 的有力竞争者。

Selenium 2.0

        2009 年,在 Google 测试自动化会议上,两个团队的开发人员在沟通后决定合并这两个项目,新项目被命名为 Selenium WebDriver,也就是 Selenium 2.0。

        特点:WebDriver 成为默认的工具,而 Selenium RC 被逐渐废弃(还没完全放弃)。

Selenium 3.0

        2016 年,Selenium 3 发布。这个版本并没有引入新的工具,主要加强了对浏览器的支持。相较 Selenium 2 的主要的变动有:

  • 完全移除了 Selenium RC。
  • WebDriver 暴露一个供浏览器接入的 API,通过各浏览器厂商提供的 Driver 来接入。
  • 将 Firefox Driver 剔除(之前 Firefox Driver 是内置的)。
  • 支持 Firefox 通过 GECKO Driver 来接入 Selenium。
  • 通过 Apple 提供的 Safari Driver,Selenium 可以支持 Safari 接入。
  • 通过 Edge Driver 支持 IE 接入。

Selenium 4.0

        2021 年,Selenium 发布 Selenium 4。 在 Selenium 3 中,与浏览器的通信基于 JSON-wire 协议,因此 Selenium 需要对 API 进行编解码。而 Selenium 4 遵循 W3C 标准协议,Driver 与浏览器之间通信的标准化使得他们可以直接通信。

除此之外,Selenium 4 还做了很多改动。包括:

  • 优化了对浏览器的支持。
  • 使用新的设计优化了 Selenium Gird。
  • 标准化了 Selenium 的文档(你敢信从 Selenium 2.0 开始,文档就没更新过…)。
  • IDE 中的 CLI Runner 变更为基于 NodeJS(之前是 HTML Runner)。
  • Client 和 Driver 支持了新的元素定位 API。
  • 支持屏幕截图。
  • 改进了 Chrome Dev Tools。之前 Chrome Driver 直接继承自 Remote Web Driver 类,现在继承自 Chromium Driver 类,这个改动使得 IDE 开发可以使用更多的 API。

演进过程图

selenium工作原理

         c/s架构,客户端和服务器通过http请求交换信息(selenium/webdriver/remote/remote_connection.py 里的_request()),通过对应的浏览器driver控制浏览器 (比如谷歌的是chromedriver),每次都有一个对话session和唯一标识 sessionID

工作流程

  • 编写测试脚本:用户使用支持的编程语言编写测试脚本,调用 Selenium 提供的 API。
  • 调用浏览器驱动:测试脚本通过 WebDriver API 调用相应的浏览器驱动。
  • 执行浏览器操作:浏览器驱动接收命令后,控制实际的浏览器执行相应的操作。
  • 返回结果:浏览器执行操作后,将结果返回给浏览器驱动,驱动再将结果返回给 WebDriver API,最终返回给用户。

这篇关于selenium发展史的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/995313

相关文章

Android我的二维码扫描功能发展史(完整)

最近在研究下二维码扫描功能,跟据从网上查阅的资料到自己勉强已实现扫描功能来一一介绍我的二维码扫描功能实现的发展历程: 首页通过网络搜索发现做android二维码扫描功能看去都是基于google的ZXing项目开发。 2、搜索怎么使用ZXing实现自己的二维码扫描:从网上下载ZXing-2.2.zip以及core-2.2-source.jar文件,分别解压两个文件。然后把.jar解压出来的整个c

Tkinter和selenium结合实现登录UC后台,最后打包成exe

主要实现的功能:小号模式自动登录UC阿里汇川广告后台,屏蔽账号密码输入 主要用的技术:用Tkinter展示所有的广告账号界面,使用selenium控制谷歌浏览器,打开阿里汇川登录页,登录汇川后台。 第一次写,遇到的坑比较多,三天,搞定。给自己一个棒棒~☺️ import Tkinter as tk import osimport sysimport requestsfrom sel

Selenium进行Web自动化测试

Selenium进行Web自动化测试 Selenium+Python实现Web自动化测试一、环境配置 Selenium+Python实现Web自动化测试 一、环境配置 环境基于win10(X64) 安装Python;安装PyCham安装chomedriver chomedriver下载地址 可以查看本地chrome软件版本下载对应的chomedriver,如果没有则下载最新

Node.js版Selenium WebDriver教程

目录 介绍 导言 Selenium基础 环境设置 使用npm安装selenium-webdriver模块 配置和管理浏览器驱动器 下载火狐 下载安装 webDriver 第一个WebDriver脚本 介绍 导言 在当今数字化时代,Web应用程序的质量和性能至关重要。为了确保这些应用的可靠性,自动化测试成为一种不可或缺的工具。Selenium,作为自动化测试领域的瑰宝

selenium Python自动化测试(基本的键盘事件)

#coding=utf-8 ''' Created on 2015-5-10 @author: user ''' ''' 几种常用的键盘指令: send_keys(Keys.BACK_SPACE) 删除键(BackSpace) send_keys(Keys.SPACE) 空格键(Space) send_keys(Keys.TAB) 制表

Selenium使用Page Object实现页面自动测试

原文转自:https://blog.csdn.net/zhenyu5211314/article/details/13632083 Page Object模式是Selenium中的一种测试设计模式,主要是将每一个页面设计为一个Class,其中包含页面中需要测试的元素(按钮,输入框,标题等),这样在Selenium测试页面中可以通过调用页面类来获取页面元素,这样巧妙的避免了当页面元素id或者位置变

Selenium WebDriver 3.0 需要注意的事项

首先,要使用WebDriver 3.0 的话 请使用JAVA 8(必要)   其次,由于W3C标准化以及各大浏览器厂商的积极跟进,自WebDriver 3.0 之后,Selenium不再提供默认的浏览器支持. 也就是说 如果你要使用Firefox, 就需要用到Mozilla自己的驱动实现: geckodriver ,这里是github下载地址 https://github.com/mozil

Selenium Test 自动化测试 入门级学习笔记

1、下载安装Firefox-selenium插件    需要下载插件可以联系,这里暂不提供下载地址。   2、集成Eclipse   需要下载jar包可以联系,这里暂不提供下载地址。   集成Eclipse非常简单,加载进去jar包就OK! 3、通过Selenium IDE 录制脚本     { 点这里就开始录制!} 以上操作是:百度输入hao123,点击搜索。 4、

Selenium Webdriver处理iFrame之间的切换问题

原文转自:https://blog.csdn.net/dongtianlaile/article/details/9854263 对于使用的iFrame技术的website, 使用xPath无法直接定位到元素,需要先切换到相应的frame再进行定位: [java]  view plain copy WebElement frame=driver.findElement(By.

Selenium启动关闭Webdriver

第一 启动chrome driver 1. 首先要通过System.setProperty指定chrome driver的路径,才能正常打开一个chrome浏览器: System.setProperty("webdriver.chrome.driver", "C:\\Selenium\\chromedriver.exe"); 2. 如果浏览器提示“您使用的是不受支持的命令行标记:--igno