Selenium 1 和 Selenium 2 之间有什么区别?
Selenium 或称为 RC(远程控制)和 WebDriver 在许多方面都不同,但关键区别在于实现层,或者简单地说,是它们的架构。
顾名思义,RC 是一个远程控制,它通过获取浏览器的远程控制权,然后通过注入编写的自定义脚本来注入要测试的自动化代码。
WebDriver(称为 Selenium 2)直接作用于浏览器,并使用浏览器内置功能来触发测试人员编写的自动化测试。WebDriver 是远程控制的继承者。
Selenium WebDriver 的架构如下:
Selenium 的这两种变体的工作方式相同,都是通过远程控制浏览器,该浏览器可以从其他地方调用。
Selenium 1 | Selenium 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 浏览器,它可以更快地执行测试,因为它不需要等待页面元素加载。 |
可以支持新的浏览器。 | 无法支持新的浏览器。 |
广告