0

我正在做一个项目,我需要将无头 Web 引擎作为服务进行通信——这意味着我需要 Web 引擎作为守护进程运行,并通过某个接口与其通信。

我一直在使用 PhantomJS + GhostDriver。它有效,但执行速度非常慢。由于奇怪的错误,它在许多情况下也失败了。(例如,我无法通过 ghostdriver 导航到 amazon.com,因为由于某种原因它无法识别页面加载何时完成,因此调用永远不会返回)。

对于我正在尝试做的事情,是否有更强大的解决方案?

4

1 回答 1

4

这完全取决于您需要什么功能。如果您需要一个不支持 JavaScript(或不能很好地支持它)并且支持 Selenium WebDriver 的快速浏览器,那么您可以使用 HtmlUnit(或许多其他,但在我看来 HtmlUnit 具有最好的 WebDriver 支持)。

但是,如果需要强大的 JavaScript 和“普通”浏览器仿真,PhantomJS + GhostDriver 是一个不错的选择,因为它使用带有 WebKit 的 JavaScriptCore 引擎作为后端。

出于我的目的,我需要在 GhostDriver 可用之前使用 Chrome(和 chromedriver)。后者虽然并不总是完美,但在大多数情况下已经取代了 Chrome,仅仅是因为它更快(主要是因为不需要渲染页面)并且与 Chrome 非常相似(由于 WebKit - 特别是 JS 引擎部分)。

于 2013-06-19T21:57:57.713 回答