HtmlUnitDriver (HtmlUnit) vs GhostDriver (PhantomJS)?[英] HtmlUnitDriver (HtmlUnit) vs GhostDriver (PhantomJS)?

问题描述

我们正在选择我们的无头浏览器驱动程序解决方案,这将是Selenium Webdriver的某种实现. 有 ghostdriver ,它利用 phantomjs 在一侧的后端和 htmlunitdriver "> htmlunitdriver 基于与流行的浏览器有很大不同.

我们认为,phantomjs是一个更强大的候选人.但是,我们不知道一切:)我们还应该考虑其他考虑因素和权衡吗? HTMLUNITDRIVER可以成为更好的解决方案的其他情况?

推荐答案

根据我在许多无头浏览器方面的经验,我会说:

htmlunitdriver :我遇到的所有实现中最快,非常适合简单,静态页面,尤其是那些没有JavaScript的页面.任何遥不可及的页面似乎都会产生问题 - 即使我无法详细证明这一点,这也是我的实践经验.非常适合在演示页面上测试硒功能,刮擦状态页面等.

phantomjsdriver (phantomjs + ghostdriver):不如您希望与桌面浏览器更快,但是,设置要比Firefox + XVFB容易得多.默认情况下,屏幕截图看起来可能有些奇怪,但是通常是因为phantomjs默认为狭窄窗口,除非明确设置(请在下面阅读有关原因).


更新:有关phantomjs版本的更多详细信息,来自我的其他答案./p>

像Safari一样,Phantomjs使用 webkit 用于渲染

不同的phantomjs版本是针对不同的WebKit版本构建的. phantomjs 2.x use webkit 538.x ://en.wikipedia.org/wiki/safari_version_history" rel =" noreferrer">等效于Safari 7或8 .而phantomjs 1.9.8 渲染其搜索页面不同.

因此,确保您使用phantomjs 2.x可以减少许多人报告与桌面浏览器的渲染差异.


另一个有趣的可能性是 slimerjs .但是,我还没有足够可靠地工作.

我从来没有遇到过htmlunitdriver或phantomjsdriver的可靠性问题(唯一的烦恼是 4.5/htmlunit 2.17不兼容问题).

(在回答有关修改http请求的评论时,我个人建议您坚持使用webdriver api并使用 proxy ,例如 browsermob 突变请求和响应,而不是利用特定于浏览器的功能.)

总的来说,我建议不要创建一个工具或过程, force 用户可以选择一个浏览器而不是另一个浏览器.如果可能的话,允许他们配置或覆盖.在大多数情况下,我会为phantomjs提供大力,因为它不会让您失望.但是,应考虑最简单页面的HTMLUNIT的性能.

另请参见(也许): http:///www.guru99. com/selenium-with-htmlunit-driver-phantomjs.html 和 https://www.quora.com/software-testing/how-does-phantomjs-compare-to-selenium

其他推荐答案

在过去几年中,我在几个项目中使用了phantomjs,但经常有问题.例如,在页面上的JavaScript与Chrome,Firefox,Internet Explorer不同.有些页面根本没有加载,可能是由于重定向而引起的,但我不是积极的(例如,页面中的KeyCloak登录).

我没有使用HTMLUNIT太多,但是当我键入它时,它避免了我在KeyCloak登录页面上对我的一些幻影问题.

.

其他推荐答案

phantomjs开发具有截至2018年3月3日,已被暂停模式已添加到Chrome和Firefox

这意味着,如果您要接收更新,则应使用htmlunit, chrome firefox firefox 驱动程序.

本文地址:https://www.itbaoku.cn/post/1739828.html