什么是 Selenium,什么是 WebDriver?

What Is Selenium And What Is WebDriver?

什么是硒?

当您打开Selenium 的官方页面时,首先看到的是"What is Selenium?" 部分中的"Selenium automates browser"。 下面的 "Which part of Selenium is appropriate for me?" 部分提供了 Selenium WebDriver 和 Selenium IDE 之间的选择。 由此,我推断Selenium是一个工具集合,这个集合包括IDE、WebDriverAPI(语言绑定)、Grid、Selenium Standalone Server、浏览器驱动。必须下载相应的才能构建项目。

什么是 WebDriver?

WebDriver 是一个 API。它是用一种以上的语言编写的,它们被称为语言绑定。 API 具有控制浏览器的功能。您可以使用这些函数来编写以您想要的方式(测试用例)控制浏览器的脚本。

这就是我所知道的。无论我错在哪里,请纠正我。我想知道从面试的角度回答这两个问题

什么是硒?

可以说是一个web应用自动化框架。

什么是 WebDriver?

这当然是一个 API 但为了便于理解,您可以将其视为一个库 collection。

Selenium 是一个免费(开源)自动化测试套件,适用于跨不同浏览器和平台的 Web 应用程序。它主要用于出于测试目的自动化 Web 应用程序,但当然不仅限于此。 Selenium 得到所有主要浏览器供应商的支持,他们已经采取(或正在采取)措施使 Selenium 成为其浏览器的本机部分。它也是无数其他浏览器自动化工具、API 和框架的核心技术。

Selenium 不仅仅是一个工具,而是一组不同的软件工具,每个软件工具都有不同的方法来支持组织的测试自动化。从更广泛的角度来看,它以前有四个组成部分:

  • Selenium 集成开发环境(IDE)
  • Selenium 遥控器(RC)
  • WebDriver
  • 硒网格

一年前,Selenium RCWebDriver 合并为一个框架,形成 Selenium 2.x。也许,Selenium 1指的是Selenium RC。当前发布的版本是 Selenium 3.x.


WebDriver

Selenium-RC 对每个支持的浏览器都以相同的方式工作。它在浏览器加载时 注入 javascript 功能到浏览器中,然后使用其 javascript 驱动 AUT 在浏览器中。 Selenium WebDriver fits in the same role as Selenium-RC did and has incorporated the original 1.x bindings and included the WebDriver API. It refers to both the language bindings and the implementations of the individual browser controlling code. This is commonly referred to as just WebDriver. In short, WebDriver 是远程控制接口,可以对用户代理进行内省和控制。 WebDriver 提供了一种平台和语言中立的有线协议,作为进程外程序远程指示 Web 浏览器行为的一种方式。

Highlights of WebDriver

  • WebDriver 采用更简单、更简洁的编程界面设计,同时解决了 Selenium-RC 中的一些限制 API。
  • 与 Selenium1.0
  • 相比,WebDriver 是一个紧凑的面向对象 API
  • 它更有效地驱动浏览器并克服了影响我们功能测试覆盖率的 Selenium 1.x 的限制,例如文件上传或下载、弹出窗口和对话框障碍
  • WebDriver 克服了 Selenium RC 的限制 Single Host origin policy

当前实施

WebDriver是在Java/C#/Ruby/Python/NodeJS中应该编写测试的关键接口的名称,您可以使用的实现类被列为下面:

我认为还值得注意的是 WebDriver 控制浏览器,而 Selenium 是 sends/receives 方法调用的部分,数据 from/to 使用 "wire protocol" 的驱动程序WebDriver 创建。所以 WebDriver 是从浏览器到任何其他想要与之通信的代码的桥梁。 Selenium 还提供了一个跨不同 WebDriver 的标准接口(在编码意义上......)。因此,当您声明一个 WebDriver 类型时,它正在实现该接口。 (无论如何,这是我目前的理解,我一直在学习新东西!)

什么是硒

这是一套可用于自动化 Web 浏览器测试的工具。 每个工具都有不同的用途。

工具列表:

  1. 硒IDE
  2. 硒 RC
  3. WebDriver
  4. 硒网格

自 Selenium 2 以来,Selenium RC 已与 WebDriver 合并

什么是 WebDriver

Selenium WebDriver 是一个允许我们通过浏览器执行测试的接口。

Selenium WebDriver 允许我们选择您选择的编程语言来创建测试脚本。

请查看下图,解释 WebDriver 与浏览器的通信方式:

什么是硒?

Selenium 是一个框架,其中脚本被写入 运行 并执行 webDriver 进而控制浏览器。

什么是 WebDriver?

WebDriver 是一个 API,这个名字本身就暗示着驱动网络浏览器或通过使用库和命令来控制网络浏览器。

WebDriver 唯一的工作就是控制浏览器,它对测试和如何与浏览器交互一无所知,此时 FrameWork 开始出现,其中脚本被写入 运行并执行 WebDriver.