selenium - 什么是 Selenium,什么是 WebDriver?
问题描述
什么是硒?
打开 Selenium 的官方页面,首先看到的是《什么是 Selenium?》中的“Selenium 自动化浏览器”。部分。“Selenium 的哪个部分适合我?”部分 下面提供了 Selenium WebDriver 和 Selenium IDE 之间的选择。由此,我推断 Selenium 是一个工具集合,该集合包括 IDE、WebDriver API(语言绑定)、Grid、Selenium Standalone Server、浏览器驱动程序。一个人必须下载适当的来构建一个项目。
什么是 WebDriver?
WebDriver 是一个 API。它是用一种以上的语言编写的,它们被称为语言绑定。API 具有控制浏览器的功能。您可以使用这些函数编写脚本,以您想要的方式(测试用例)控制浏览器。
这是我所知道的。请在我错的地方纠正我。我想从面试的角度知道这两个问题的答案。
解决方案
硒
Selenium是一个免费(开源)自动化测试套件,适用于跨不同浏览器和平台的 Web 应用程序。它主要用于自动化 Web 应用程序以进行测试,但当然不仅限于此。Selenium 得到所有主要浏览器供应商的支持,这些供应商已经采取(或正在采取)措施使 Selenium 成为其浏览器的本机部分。它也是无数其他浏览器自动化工具、API 和框架的核心技术。
Selenium 不仅仅是一个工具,而是一组不同的软件工具,每个工具都有不同的方法来支持组织的测试自动化。从更广泛的角度来看,它有以下四个组成部分:
- Selenium 集成开发环境 (IDE)
- 硒遥控器 (RC)
- 网络驱动程序
- 硒网格
一年前,Selenium RC和WebDriver合并为一个框架,形成了Selenium 2.x。也许, Selenium 1指的是Selenium RC。当前发布的版本是Selenium 3.x。
网络驱动程序
Selenium-RC 对于每个支持的浏览器都以相同的方式工作。它在浏览器加载时将javascript函数注入 浏览器,然后使用其 javascript 在浏览器中驱动AUT。Selenium WebDriver与 Selenium-RC 具有相同的作用,并合并了原始1.x绑定并包含WebDriver API。它指的是语言绑定和单个浏览器控制代码的实现。这通常被称为WebDriver。简而言之,WebDriver是一个远程控制接口,可以实现用户代理的自省和控制。WebDriver 提供了一个平台和语言中立的有线协议,作为进程外程序远程指示 Web 浏览器行为的一种方式。
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 中编写测试的关键接口的名称,您可以使用的实现类如下所示:
推荐阅读
- python - 使用漂亮的汤从'div'中提取'dt'类
- javascript - 用谷歌翻译替换文件中的每个名称
- python - Numpy 连接函数导致 Jupyter 内核死机
- symfony - Symfony 5 - 两个前缀
- java - javax.net.ssl.SSLHandshakeException:java.security.cert.CertificateException:没有与 IP 地址匹配的主题备用名称
- c - C程序在文件中查找包含字母的单词
- r - 对分类变量的类别子集进行等式比例检验
- session - 使用 ngxs 存储在控制台日志中看到此错误。“序列化存储值时发生错误,值未更新”
- javascript - 按下按钮时反应本机更新滚动视图偏移
- android - 已弃用的方法 publisher.destroy() opentok?