Selenium 1 和 Selenium 2 之间有什么区别?


Selenium 或称为 RC(远程控制)和 WebDriver 在许多方面都不同,但关键区别在于实现层,或者简单地说,是它们的架构。

顾名思义,RC 是一个远程控制,它通过获取浏览器的远程控制权,然后通过注入编写的自定义脚本来注入要测试的自动化代码。

WebDriver(称为 Selenium 2)直接作用于浏览器,并使用浏览器内置功能来触发测试人员编写的自动化测试。WebDriver 是远程控制的继承者。

Selenium WebDriver 的架构如下:

Selenium 的这两种变体的工作方式相同,都是通过远程控制浏览器,该浏览器可以从其他地方调用。

Selenium 1Selenium 2
Selenium 1 = Selenium 远程控制。Selenium 2 = Selenium 1 + WebDriver
依赖于核心库,这些库可以在任何支持 JavaScript 的浏览器上运行。它以原生方式运行 JavaScript,并且创建的测试用例可以在不同的浏览器上运行。
Selenium RC 服务器充当 Selenium 命令和浏览器之间的中介。WebDriver 使用操作系统的原生功能直接与操作系统通信。它为此通信使用浏览器驱动程序。
在测试过程中,Selenium RC 将 JavaScript 程序(Selenium Core)注入浏览器。WebDriver 为文档对象模型 (DOM) 交互和浏览器控制提供了面向对象的 API。
它的工作原理是根据 JavaScript 命令指示用户操作,但这并不强制用户只能用 JavaScript 编写自动化测试用例。它可以使用 Java、Ruby、C#、Perl、Python 等。它也使用多种编程语言,如 Perl、Ruby、Python、C#、Java、PHP、.Net 等。
如果涉及速度,由于 RC 服务器的中介作用,它会稍微慢一些。它速度很快,因为它可以直接与浏览器通信,而无需使用任何内部代理服务器。
不支持移动应用程序测试。使用 AndroidDriver 和 iphoneDriver 进行移动自动化。
需要真实的浏览器才能工作。还支持无头 HTMLUnit 浏览器,它可以更快地执行测试,因为它不需要等待页面元素加载。
可以支持新的浏览器。无法支持新的浏览器。

更新于:2020年7月2日

1K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告