文章目录
一、Selenium是什么?
Selenium 是一个涵盖一系列工具和库的项目,这些工具和库支持 Web 浏览器的自动化。
- 提供了扩展(webDriver)来模拟用户与浏览器的交互
- 可以为主流浏览器编写通用的代码
- 开源,免费
二、Selenium 发展史(了解即可)
1.Selenium 1.0
Selenium 1.0 = Selenium IDE + Selenium Grid + Selenium RC。
- Selenium IDE 是浏览器中的一个插件,可以实现浏览器操作的录制与回放。
- Selenium Grid 可以实现在不同机器和环境中运行测试用例。
- Selenium RC 支持多种不同语言的自动化测试脚本,通过Selenium RC的服务器作为代理服务器去访问应用,从而达到测试的目的。
2.Selenium 2.0
Selenium2.0 = Selenium1.0 + Webdriver。
- WebDriver 提供了直接让测试工具调用浏览器和操作系统的内置方法, 可以更好的模拟真实环境。
- WebDriver 绕过JavaScript的沙盒限制,所以将这2个项目进行了合并。将WebDriver作为RC的替代品。为了保持向下的兼容性,依旧保留了RC。
3.Selenium 3.0
Selenium3.0 = Selenium2.0 - Selenium RC 。
- 用Webdriver彻底替代了RC,并把Firefox浏览器独立出来,运用时需要下载Firefox浏览器和geckocdriver驱动,selenium3.0支持48版本以上。
4.Selenium 4.0
- 4.0 创建了标准化,摒弃了一些老的用法。
- 部分组件进行了升级优化
Selenium 4.0 官方文档:https://www.selenium.dev/documentation/overview/
三、Selenium 核心组件介绍
1.Selenium IDE
Selenium IDE 是 FireFox 浏览器的一个插件,实现对浏览器操作的录制与回放功能,录制对脚本可以转化为多种脚本语言(Java、Python、Ruby)
2.Selenium RC
Selenium RC是 Selenium 的核心组成部分,它由两个组件构成:
1、Selenium Server:(负责控制浏览器行为)解释执行测试代码或者脚本,也是HTTP代理服务器的角色,用于侦测处理浏览器与服务器之间的HTTP请求通信
2、Client Library:(测试人员编写测试脚本控制 Selenium Server 的库)提供接口,用于编程语言连接 Selenium Server ,负责发送命令给 Selenium Server ,接收测试结果。
3.Selenium WebDriver
WebDriver 指的是语言绑定和单个浏览器控制代码的实现。
4.Selenium Grid
Selenium Grid组件的主要作用是实现并发测试,它可以实现多台测试机器和多个浏览器并发测试。每一个测试环境上的机器称为Node节点。工作模式由一个Hub节点和若干个Node节点组成。Hub用来管理和收集Node节点的注册信息和状态信息,接受远程调用,并把请求分发给代理节点来执行。
四、Selenium 通信方式
WebDriver 通过驱动程序和浏览器对话,通信方式有两种
1.直接通信
WebDriver 通过驱动程序将命令传递给浏览器,并通过相同的路由接收返回的信息。
驱动是特定于浏览器的,例如谷歌的Chrome/Chromium的ChromeDriver,Mozilla的火狐的GeckoDriver等。驱动和浏览器运行在同一个系统上。这可能是也可能不是测试本身正在执行的同一系统。
2.远程通信
2.1 通过 RemoteWebDriver 通信
RemoteWebDriver 与驱动程序和浏览器在同一系统上运行。
2.2 通过 Selenium Server 或 Selenium Grid 通信
依次和主机系统上的驱动程序通信