Selenium 简介

documentation

一、Selenium

Selenium 诞生于 2004 年,基于 Javascript 的自动化引擎。
在 2006 年,一名 Google 工程师 Simon Stewart 开始基于 Selenium 进行开发,这个项目被命名为 WebDriver。
在 2008 年, Selenium 和 WebDriver 的合并。

为什么这两个项目要合并?一部分是因为 WebDriver 弥补了 Selenium 的一些短处(例如提供了一组很棒的 API,绕开浏览器的限制),一部分是因为 Selenium 弥补了WebDriver 的一些短处(例如对浏览器更广泛的支持)。

二、WebDriver

Selenium 2.0 最主要的一个新特性就是集成了 WebDriver API。WebDriver 提供更精简的编程接口。WebDriver 为那些页面元素可以不通过页面重新加载来更新的动态网页提供了更好的支持。WebDriver 的目标是提供一套精心设计的面向对象的 API 来更好的支持现代高级 web 应用的测试工作。

Selenium 通过使用 WebDriver 支持市场上所有主要浏览器的自动化。WebDriver 是一种 API 和协议,它定义了一种与语言无关的接口,用于控制 Web 浏览器的行为。每个浏览器都有一个特定的 WebDriver 实现(称为 driver)。驱动程序是负责委派给浏览器的组件,并处理与 Selenium 和浏览器之间的通信

有意识的分离,以使浏览器供应商负责其浏览器的实现。Selenium 在可能的情况下利用这些第三方驱动程序,但对于不现实的情况,Selenium 也提供由项目维护的自己的驱动程序。

Selenium 框架通过面向用户的界面将所有这些部分联系在一起,从而可以透明地使用不同的浏览器后端,从而实现跨浏览器和跨平台的自动化。

WebDriver 是一个进行 web 应用测试自动化的工具,主要用于验证它们的行为是否符合期望。WebDriver 的目标是提供一套易于掌握的 API。

WebDriver 就像用户在本地或使用 Selenium 服务器的远程计算机上一样,本机驱动浏览器,标志着浏览器自动化方面的飞跃。

Selenium WebDriver 既指语言绑定,也指单个浏览器控制代码的实现。通常将其称为 WebDriver。

术语

API:应用程序编程接口。这是用于操作 WebDriver 的“命令”集。
库:一个代码模块,其中包含 API 和实现它们所必需的代码。库特定于每种语言绑定,例如 Java 的 .jar 文件,.NET 的 .dll文件等。
驱动程序:负责控制实际的浏览器。大多数驱动程序是由浏览器供应商自己创建的。驱动程序通常是可执行模块,它们是通过浏览器本身在系统上运行的,而不是在执行测试套件的系统上运行的。(尽管它们可能是同一系统。)注:有些人将驱动程序称为代理。
框架:用于支持 WebDriver 套件的附加库。这些框架可以是测试框架,例如 JUnit 或 NUnit。它们也可能是支持自然语言功能(例如 Cucumber 或 Robotium)的框架。框架也可以编写并用于诸如操作或配置被测系统,数据创建,测试预告片等工作。

Selenium with Python中文文档