Selenium 是一个 Web 利用的 自动化框架。次要利用于 Web 应用程序的自动化测试。
通过它,测试工程师能够写出自动化程序,模仿人在浏览器里操作 Web 界面。比方点击界面按钮,在文本框中输出文字等操作。
除此以外,它还反对所有基于 Web 的治理工作自动化。
Selenium 官网
Selenium 的特点
- 开源收费:基于这点,可能吸引大部分公司违心应用它来作为自动化测试的框架
- 多浏览器反对:反对 Chrome、Firefox、IE、Edge、Safari 等浏览器
- 多平台反对:反对 Linux、Windows、Mac 零碎平台
- 多语言反对:反对 Java、Python、Ruby、JavaScript、C++ 等开发语言
- 对 Web 页面有良好的反对
- 简略、灵便:应用时调用的
API
简略,只须要应用开发语言导入调用即可 - 反对分布式测试:应用 Selenium Grid
- 反对录制、回放与脚本生成:应用
Selenium IDE
Selenium 的历史版本
Selenium 经验了 3 个版本,Selenium 1.X
、Selenium 2.X
以及目前的 Selenium 3.X
。
其中 Selenium 1.X
与 Selenium 2.X
最大的区别在于 WebDriver
。WebDriver
已经是 Selenium 的竞争对手,能补救 Selenium 1.X
存在的有余。
而 Selenium 2.X
则是 Selenium 与 WebDriver
两个我的项目的合并,也就是说,Selenium 2.X
= Selenium 1.X
+ WebDriver
。
直到现在,应用最为宽泛的是 Selenium 3.X
,它 最大的变动 在于:
- 去掉了 Selenium RC
- Firefox 浏览器领有了独立的驱动——
geckodriver
- Edge 浏览器与 Safari 浏览器原生驱动的反对
Selenium 的工作原理
从上图能够看出:
自动化脚本须要调用 客户端库,在 Python 环境中装置 Selenium 库 非常简单,应用 pip install selenium
即可。
脚本程序的自动化申请,都是通过客户端库里的 API
发送给浏览器驱动 — WebDriver
。再由 WebDriver
来理论执行浏览器的操作。
比方,模仿用户点击界面按钮,自动化脚本作为客户端,调用客户端库内 click()
的办法,将 点击元素 的申请给到指定的 浏览器驱动 WebDriver
,再由 WebDriver
将这个申请转发给浏览器。
总结