基于python实现UI自动化1.0 selenium工具介绍
Posted lht3347
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于python实现UI自动化1.0 selenium工具介绍相关的知识,希望对你有一定的参考价值。
【基于python实现UI自动化】1.0 selenium工具介绍
Selenium介绍
Selenium是一款免费开源Web UI自动化测试框架。支持多语言(Python、Java、Ruby等)、多平台开发、以及多浏览器(IE、Firefox、Safari、Chrome、Opera)兼容、分布式用例执行等特点。
博主安装的是selenium 3.141的版本
Selenium的发展
Selenium 截止目前有四大迭代版本,Selenium 1.x 、 Selenium 2.x 、Selenium 3.x、4.x。
Selenium 1
Selenium 1由几个工具组成,以下是Selenium的架构图:
-
Selenium IDE
嵌套在Firefox(火狐)浏览器的插件,录制用户的基本浏览器操作,生成UI自动化测试用例,同时也具备回放测试用例的功能,和转换成多种语言的自动化脚本。 -
Selenium Grid
Selenium Grid可实现多个不同环境、不同浏览器运行的分布式测试。利用 Grid,可以很方便地同时在多台机器上和异构环境中并行运行多个测试事例。 -
Selenium RC
Selenium RC(Remote Control):Selenium的远程控制,也是Selenium的核心组件,通过Selenium的代理服务器实现访问不同浏览器的自动化测试目的。
Selenium RC包含Client和Server。Client实现自动化脚本,Server负责控制浏览器行为。
Server分为三个部分:- Launcher:启动浏览器。
- Http Proxy:Selenium Server的HTTP代理。
- Core:嵌入到浏览器页面中,通过JS代码实现对浏览器的操作。
用Launcher启动浏览器,把 Selnium Core 加载到浏览器页面当中,并把浏览器的代理设置为 Selenium Server 的Http Proxy。
Selenium 2
Selenium 2的核心是加入了WebDriver,WebDriver替代了Selenium 1中的Selenium RC。
可简单理解为:Selenium 2 = Selenium1 + WebDriver
selenium 2的运行原理:基于调用WebDriver Api来模拟用户操作浏览器,由于WebDriver直接交互使用浏览器,使得WebDriver速度更快,同时支持多种编程语言(Python、Java、Ruby等);
引用网上的Webdriver简单的架构图,文章已找不到了,如有侵权,请联系删除。
Selenium 3
Selenium 3的运行原理还是以WebDriver为主。下面看下Selenium 3更新的新特性:
- 去掉了Selenium RC 的支持;
- 增加了支持macOS(Sierra or later),支持官方的safarideriver (Apple提供);
- 通过ms官方的webdriver server支持Edge浏览器;
- 只支持ie 9.0版本以上;
- 通过Mozilla官方的geckodriver驱动来支持Firefox,支持FireFox 47以上的版本。
Selenium 4
早在2018年8月,Simon Stewart(Selenium的创始成员)在班加罗尔的Selenium大会议上正式确认了Selenium4.0的发布日期和一些主要更新。
Selenium 4目前更新了以下内容:
- Selenium 4 WebDriver是完全W3C标准化的;
- Selenium Grid支持使用Docker容器;
- 增加基本的窗口操作(最小化窗口等);
- 增加新建窗口newWindow类;
- 新增支持CDP的DevTools接口;
- 新增支持火狐浏览器全屏截图;
- 等······
在这里看到Selenium 4.0 项目的进展:
https://github.com/SeleniumHQ/selenium/projects/2
创作不易,各位读者觉得本文对你有帮助,请动起你们的小手手点下赞(一键三连更好)。
以上是关于基于python实现UI自动化1.0 selenium工具介绍的主要内容,如果未能解决你的问题,请参考以下文章
基于python实现UI自动化3.1 selenium通过By定位元素
基于python实现UI自动化3.2 selenium通过JS定位元素
基于python实现UI自动化3.4 JS 处理日历控件(删除 readonly 属性)
基于python实现UI自动化3.3 Selenium - JS处理浏览器滚动条