selenium chrome插件_第二章:selenium

Jason Huggins 在 2004 年发起了 Selenium 项目,当时身处 ThoughtWorks 的他,为了不想让自己的时间浪费在无聊的重复性工作中,幸运的是,所有被测试的浏览器都支持 Javascript。Jason 和他所在的团队采用 Javascript 编写一种测试工具来验证浏览器页面的行为;这个 JavaScript 类库就是 Selenium core,同时也是 seleniumRC、Selenium IDE 的核心组件。Selenium 由此诞生。
关于 Selenium 的命名比较有意思,当时 QTP mercury 是主流的商业自化工具,是化学元素汞(俗称水银),而 Selenium 是开源自动化工具,是化学元素硒,硒可以对抗汞。
Selenium 1.0
selenium1.0 调用的是 JS,不足之处就是:不支持本机的键盘和鼠标的事件,不支持拓展脚本,不支持对话框、弹出框。

v2-e351653fd57f3de8f9fe2820900a2faf_b.jpg


用简单的公式:
Selenium 1.0 = Selenium IDE + Selenium Grid + Selenium RC Selenium IDE
Selenium IDE 是嵌入到 Firefox 浏览器中的一个插件,实现简单的浏览器操作的录制与回放功能。Selenium Grid
Selenium Grid 是一种自动化的测试辅助工具,Grid 通过利用现有的计算机基础设施,能加快 Web-App 的功能测试。利用 Grid 可以很方便地实现在多台机器上和异构环境中运行测试用例。Selenium RC
Selenium RC(Remote Control)是 Selenium 家族的核心部分。Selenium RC 支持多种不同语言编写的自动化测试脚本,通过 Selenium RC的服务器作为代理服务器去访问应用,从而达到测试的目的。
Selenium RC分为Client Libraries 和 Selenium Server。Client Libraries 库主要用于编写测试脚本,用来控制 Selenium Server 的库。Selenium Server负责控制浏览器行为。
所以,我们在学习 Selenium1.0 的时候,核心应该是学习 RC,它的工作原理是这样的:

v2-93dbe493486d9d388b104019a61b2d25_b.jpg


在 2006 年的时候,Google 的工程师 Simon Stewart 发起了 WebDriver 的项目;因为长期以来 Google 一直是 Selenium 的重度用户,但却被限制在有限的操作范围内。
Selenium RC 是在浏览器中运行 JavaScript 应用,使用浏览器内置的 JavaScript 翻译器来翻译和执行 selenese 命令(selenese是Selenium命令集合)。
WebDriver 是通过原生浏览器支持或者浏览器扩展来直接控制浏览器。WebDriver 针对各个浏览器而开发,取代了嵌入到被测 Web 应用中的 JavaScript,与浏览器紧密集成,因此支持创建更高级的测试,避免了 JavaScript 安全模型导致的限制。除了来自浏览器厂商的支持之外,WebDriver 还利用操作系统级的调用,模拟用户输入。
Selenium 与 WebDriver 原是属于两个不同的项目,WebDriver 的创建者 Simon Stewart 早在 2009 年 8 月的一份邮件中解释了项目合并的原因。
Selenium 与 WebDriver 合并原因:为何把两个项目合并?部分原因是 WebDriver 解决了 Selenium 存在的缺点(例如能够绕过 JavaScript 沙箱,我们有出色的 API),部分原因是 Selenium 解决了 WebDriver 存在的问题(例如支持广泛的浏览器),部分原因是因为 Selenium 的主要贡献者和我都觉得合并项目是为用户提供最优秀框架的最佳途径。
Selenium 2.0
selenium2.0 调用的是浏览器,selenium2.0 基于 webdriver API 来模拟用户操作,直接交互操作的浏览器,因此速度更快,支持多种编程语言。
因为 Selenium 和 Webdriver 的合并,所以,Selenium 2.0 由此诞生。简单用公式表示为:
Selenium 2.0 = Selenium 1.0 + WebDriver
需要强调的是,在 Selenium 2.0 中主推的是 WebDriver,可以将其看作 Selenium RC 的替代品。因为 Selenium为了保持向下的兼容性,所以在Selenium 2.0中并没有彻底地抛弃Selenium RC。
所以,我们在学习 Selenium2.0 的时候,核心是学习 WebDriver。它的工作原理是这样的:

v2-8ce71008248fa839273ae1320fe58c20_b.jpg


大概是在 2013 年的时候,那一年我刚开始深入的学习和使用 Selenium,我通过 Selenium 官方博客上了解到,Selenium团队将会在圣诞节发布Selenium3.0,然后,我开始期待即将到来的3.0版,后来就没有了后来,很多年过去了,依然没等到Selenium3.0。
直到 2016 年 7 月,Selenium3.0 悄悄发布第一个 beta 版。惊不惊喜,意不意外?他们是这么解释的:
“在 seleniumconf 2013,我们宣布,Selenium 的一个新的主要版本将在‘圣诞节’发布。幸运的是,我们从来没有说过哪个圣诞节,因为我们已经花了一段时间来做我们想做的所有改变!我们很兴奋地宣布第一个bate版--Selenium 3.0 - beta1 的发布。”
Selenium 3.0
selenium3.0 去掉了对 selenium RC 的支持,全面拥抱 java8,支持 macOS 的 safari 浏览器。
终于去掉了 RC,简单用公式表示为:
Selenium 3.0 = Selenium 2.0 - Selenium RC(Remote Control)
Selenium3.0 只支持 Java8 版本以上。
Selenium3.0 中的 Firefox 浏览器驱动独立了,以前装完 selenium2 就可以驱动 Firefox 浏览器了,现在和 Chrome一样,必须下载和设置浏览器驱动。
MAC OS 集成 Safari 的浏览器驱动。默认在/usr/bin/safaridriver 目录下。
只支持IE 9.0 版本以上。

阅读原文:

selenium​www.birdpython.com
v2-31e34fa9b71568ba355086dc7dd4e8a8_ipico.jpg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值