如何使 phantomjs 浏览器可见?

分享于2023年06月29日 electron headless-browser javascript node.js phantomjs 问答
【问题标题】:How to make the phantomjs browser visible?如何使 phantomjs 浏览器可见?
【发布时间】:2023-06-15 07:45:02
【问题描述】:

我知道这听起来很奇怪。关键是我想要一个 NodeJS 应用程序来控制浏览器。同时,我希望看到浏览器并能够与之交互,并实时查看它在做什么。

如果在 PhantomJS 中无法实现,还有其他方法可以从 NodeJS 控制专用浏览器。 (专用浏览器我的意思是我不想用自己的个人Chrome)

使用案例: 例如,我想测试一个需要“登录”的应用。我不想测试登录过程。 所以我需要手动“登录”,(让浏览器保存 cookie),然后我就可以使用登录用户的相同 cookie 运行测试。

换句话说: 是否可以与 NodeJS 控制的浏览器进行交互?我需要显示和隐藏浏览器的选项(因此它可以在桌面和无头服务器上工作)

  • 看到答案后,我不喜欢我的问题的标题。它通常是关于任何不特定于 PhantomJS 的 NodeJS 无头浏览器模块。您还有什么建议吗?

【解决方案1】:

PhantomJS 是一个无头浏览器,这意味着没有什么可显示的。

幸运的是, 还有 其他选项可能适合您的工作流程


NightmareJS 使用的是基于 Google Chrome 浏览器的 Electron。您可以使浏览器可见:
var Nightmare = require('nightmare');       
var nightmare = Nightmare({ show: true });

SlimerJS 始终可见,它的语法与 PhantomJS 兼容。

【讨论】:

  • 是否可以在运行时更改此属性?
  • 没试过这样做,不认为是这样。为什么要这样做?
  • 不错的发现。但请注意,即使您隐藏它,NightmareJS 仍然不是真正的无头,您需要 xvfb 或 xvfb-run 才能在服务器上运行它。
  • “我无法在测试时添加脚本”无法理解您的意思
  • “不是真正的无头浏览器。所以仍在搜索”,但您将无法与真正的无头浏览器交互。这是一个或另一个。