Selenium Webdriver 和 Selenium Ghostdriver 有什么区别?

What is the Difference between Selenium Webdriver and Selenium Ghostdriver?

我想知道 Selenium Webdriver 和 Selenium Ghostdriver 的区别。

我也很疑惑为什么要用selenium Ghostdriver?

请简单介绍一下。

提前致谢。

Selenium WebDriver 由核心 Java API 组成,也称为 Selenium 2

Ghost Driver 是 PhantomJS 的 WebDriver Wire Protocol 的纯 JavaScript 实现。这是一个使用 PhantomJS 作为后端的 Remote WebDriver。

WebDriver PhantomJs 的实现是 GhostDriver

Selenium2 驱动程序实际加载并且 运行 是一个活动的浏览器会话,就像人类一样操纵浏览器。 ZombieJS 是一个 'headless' 浏览器,提供常规浏览器的所有功能,但没有显示界面。无需花费额外的时间等待显示实际呈现,像 ZombieJS 这样的无头浏览器可以 运行 比普通浏览器快得多,因此您的测试执行时间只需一半。但是 ZombieJS 需要安装 Node.js 并且可能会有一些问题,而且它有自己的 API (有利有弊)。 Selenium2 驱动程序经过良好测试并实现了标准 API -- WebDriver Wire Protocol -- 在它具有驱动程序的所有浏览器中。

现在有一个包含 WebDriver Wire Protocol 实现的无头浏览器 -- PhantomJS。最新版本的 PhantomJS 是一个易于安装的独立二进制文件,不需要安装 Node.js 或任何其他依赖项,并附带其自己的“Ghost Driver”以实现 WebDriver Wire 协议。这意味着您可以使用 Codeception 中的 Selenium2 驱动程序来驱动它,以及任何您可以在 Chrome、Firefox、Safari 或 IE 中使用 Selenium2 进行测试的东西,现在使用 PhantomJS

可以将测试时间缩短一半

即使不需要 运行 最新的 PhantomJS,安装 Selenium2 也是个好主意,这样您就可以在其他浏览器中进行测试。