Selenium3学习笔记


本文所述内容在Windows系统下实践完成,涉及的软件版本信息如下:

软件

版本

位数

Java

1.8.0_152

64

Eclipse

eclipse-jee-oxygen-1a-win32-x86_64 (4.7.1a)

64

IntelliJ IDEA

 

 

Maven

3.5.2

 

Selenium

3.8.1

 

Junit

 

 

TestNG

 

 

AutoIt

 

 

Sikuli

 

 

Firefox

55

32

注:部分软件版本间兼容性十分重要,下文中会提及,使用其他版本时请注意。

1.  简介

Selenium是用于测试 Web应用程序用户界面 (UI)的常用框架。它是一款用于运行端到端功能测试的超强工具。您可以使用多个编程语言编写测试,并且 Selenium能够在一个或多个浏览器中执行这些测试。

1.1  历史

  • Selenium1.0

2004年,ThoughtWorks公司的JasonHuggins和他所在的团队采用Javascript编写一种测试工具来验证浏览器页面的行为。这个JavaScript类库就是Selenium core,同时也是seleniumRCSelenium IDE的核心组件。

关于命名

当时QTP mercury是主流的商业自动化工具,是化学元素汞(俗称水银),而Selenium是开源自动化工具,是化学元素硒,硒可以对抗汞。

Selenium1.0组件

Selenium 1.0 = Selenium IDE + Selenium Grid + SeleniumRC

n  Selenium IDE

Selenium IDE是嵌入到Firefox浏览器中的一个插件,实现简单的浏览器操作的录制与回放功能。

n  Selenium Grid

Selenium Grid是一种自动化的测试辅助工具,Grid通过利用现有的计算机基础设施,能加快Web-App的功能测试。利用Grid可以很方便地实现在多台机器上和异构环境中运行测试用例。

n  Selenium RC

Selenium RCRemote Control)是Selenium家族的核心部分。Selenium RC 支持多种不同语言编写的自动化测试脚本,通过Selenium RC的服务器作为代理服务器去访问应用,从而达到测试的目的。

Selenium RC分为Client LibrariesSelenium ServerClient Libraries库主要用于编写测试脚本,用来控制Selenium Server的库。Selenium Server负责控制浏览器行为

 

  • Selenium 2.0

2006年,Google的工程师SimonStewart发起了WebDriver的项目;因为长期以来Google一直是Selenium的重度用户,但却被限制在有限的操作范围内。

Selenium RC是在浏览器中运行JavaScript应用,使用浏览器内置的JavaScript翻译器来翻译和执行selenese命令(seleneseSelenium命令集合)。

WebDriver是通过原生浏览器支持或者浏览器扩展来直接控制浏览器。WebDriver针对各个浏览器而开发,取代了嵌入到被测Web应用中的JavaScript,与浏览器紧密集成,因此支持创建更高级的测试,避免了JavaScript安全模型导致的限制。除了来自浏览器厂商的支持之外,WebDriver还利用操作系统级的调用,模拟用户输入。

2011年,SeleniumWebdriver合并, Selenium2.0诞生。

SeleniumWebDriver原是属于两个不同的项目,WebDriver的创建者Simon Stewart早在20098月的一份邮件中解释了项目合并的原因。

SeleniumWebDriver合并原因:为何把两个项目合并?部分原因是WebDriver解决了Selenium存在的缺点(例如能够绕过JavaScript沙箱,我们有出色的API),部分原因是Selenium解决了WebDriver存在的问题(例如支持广泛的浏览器),部分原因是因为Selenium的主要贡献者和我都觉得合并项目是为用户提供最优秀框架的最佳途径。

Selenium 2.0 = Selenium 1.0 + WebDriver

需要强调的是,在Selenium 2.0中主推的是WebDriver,可以将其看作SeleniumRC的替代品。因为Selenium为了保持向下的兼容性,所以在Selenium 2.0中并没有彻底地抛弃Selenium RC

Selenium 2具有来自WebDriver的清晰面向对象 API,并能以最佳的方式与浏览器进行交互。Selenium 2不使用 JavaScript沙盒,它支持多种浏览器和多语言绑定。Selenium 2为下列程序提供驱动程序:

  • Mozilla Firefox

  • Google Chrome

  • Microsoft Internet Explorer

  • Opera

  • Apple iPhone

  • Android browsers

  • ……

借助 Selenium 2,您可使用 JavaC#Ruby、和 Python 编写测试。Selenium2还提供基于 HtmlUnit的无外设驱动,是用于测试 Web应用程序的 Java框架。HtmlUnit运行速度特别快,但它不是一个真正与真实浏览器相关联的驱动。

  • Selenium3.0

20167月,Selenium3.0悄悄发布第一个beta版。

Selenium 3.0 = Selenium 2.0 + Selenium RCRemote Control

 

1.2 Selenium3现状

1.2.1 更新

    • 去掉了对selenium rc的支持。

    • 全面拥抱java 8

    • 支持macOS (Sierra or later),支持官方的safaridriver

    • 通过ms官方的webdriverserver支持Edge浏览器。

    • 只支持ie 9.0版本以上。

    • 通过Mozilla官方的geckodriver来支持firefox

尽管firefox driver非常的稳定高效,但firefoxdriver毕竟是google实现的。geckodriver的出现是必然的结果,因为最新版本的firefox换引擎了,老的firefox driver应该是不支持新引擎的。

firefox driver究竟是什么?为什么你一次都没下载运行过?

这是因为firefox driver包含在selenium各语言版本的分发包里,使用webdriver启动firefox的时候,webdriver会为firefox安装firefox driver扩展

 

1.2.2 重要意义

  • 2
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值