什么是Selenium和WebDriver?

19

什么是Selenium?

当您打开Selenium的官方页面时,“What is Selenium?”部分中的第一句话是“Selenium automates browser”。下面的“Which part of Selenium is appropriate for me?”部分提供了Selenium WebDriver和Selenium IDE之间的选择。我推断Selenium是一个工具集合,其中包括IDE、WebDriver API(语言绑定)、Grid、Selenium Standalone Server和浏览器驱动程序。您需要下载适当的工具来构建项目。

什么是WebDriver?

WebDriver是一个API。它由多种语言编写而成,这些语言被称为语言绑定。该API具有控制浏览器的功能。您可以使用这些功能编写脚本,以测试用例的方式控制浏览器。

以上是我的理解,请在我理解有误的地方纠正我。我想从面试角度了解这两个问题的答案。

5个回答

24

Selenium

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

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

  • Selenium集成开发环境(IDE)
  • Selenium远程控制器(RC)
  • WebDriver
  • Selenium Grid

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


WebDriver

Selenium-RC为每个支持的浏览器都提供了相同的工作方式。它在浏览器加载时将JavaScript函数注入到浏览器中,然后使用其JavaScript驱动浏览器内的AUTSelenium WebDriver在与Selenium-RC相同的角色中发挥作用,并已纳入原始的1.x绑定并包括WebDriver API。它既指语言绑定,也指各个浏览器控制代码的实现。这通常被简称为WebDriver。简而言之,WebDriver是远程控制界面,可使用户代理进行内省和控制。WebDriver提供平台和语言中立的线协议,以便外部进程程序远程指示Web浏览器行为。

WebDriver的亮点

  • WebDriver设计了更简单、更简洁的编程接口,并解决了Selenium-RC API中的一些限制。
  • 与Selenium 1.0相比,WebDriver是一个紧凑的面向对象API。
  • 它更有效地驱动浏览器,克服了影响我们功能测试覆盖范围的Selenium 1.x的一些限制,如文件上传或下载、弹出窗口和对话框障碍。
  • WebDriver克服了Selenium RC的单主机源策略的限制。

当前实现

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


6

Selenium是什么

Selenium是一组工具,可用于自动化测试网页浏览器,每个工具都有不同的功能。

工具列表:

  1. Selenium IDE
  2. Selenium RC
  3. WebDriver
  4. Selenium Grid

自Selenium 2之后,Selenium RC已与WebDriver合并。

WebDriver是什么

Selenium WebDriver是一个接口,允许我们在浏览器上执行测试。

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

请参见下面的图片,解释了WebDriver如何与浏览器通信:

enter image description here


1

什么是Selenium?

Selenium是一个框架,脚本编写用于运行和执行webDriver,从而控制浏览器。

什么是WebDriver?

WebDriver是一个API,名称本身就表明使用库和命令来驱动Web浏览器或控制Web浏览器。

WebDriver的唯一工作就是控制浏览器,它不知道任何关于测试和如何与浏览器交互的内容。此时,框架就发挥作用了,脚本编写用于运行和执行WebDriver。


0

Selenium是什么?

你可以说它是一个Web应用程序自动化框架。

WebDriver是什么?

这肯定是一个API,但为了更容易理解,你可以将其视为库集合。


0

我认为值得注意的是,WebDriver控制浏览器,而Selenium则是使用WebDriver创建的“wire protocol”发送/接收方法调用和数据到/从驱动程序的部分。因此,WebDriver是从浏览器到希望与其通信的任何其他代码之间的桥梁。 Selenium还提供了一个在不同WebDrivers之间标准化的接口(在编码意义上…),因此当您声明WebDriver类型时,它正在实现接口。(这是我当前的理解方式,我总是在学习新东西!)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接