Phantomjs 幻影,但不是无头?

Phantomjs 幻影,但不是无头?,phantomjs,headless-browser,Phantomjs,Headless Browser,有没有一种方法可以实时查看PhantomJS(或类似的)渲染的内容 我想在与它的目标页面交互(或至少看到其屏幕盖)时开发我的自动化脚本。不,没有这样的事情。与PhantomJS具有相同的API,但运行Gecko引擎。您可以直接看到正在发生的事情,并无头运行它 您将无法与它进行交互。当测试很长时,您可能希望使用屏幕抓取器记录交互的视频,如果您没有发现测试用例中的问题,则不希望再次运行测试套件 调试PhantomJS脚本的明显方法是使用page.render()呈现许多屏幕截图,并使用 conso

有没有一种方法可以实时查看PhantomJS(或类似的)渲染的内容


我想在与它的目标页面交互(或至少看到其屏幕盖)时开发我的自动化脚本。

不,没有这样的事情。与PhantomJS具有相同的API,但运行Gecko引擎。您可以直接看到正在发生的事情,并无头运行它

您将无法与它进行交互。当测试很长时,您可能希望使用屏幕抓取器记录交互的视频,如果您没有发现测试用例中的问题,则不希望再次运行测试套件


调试PhantomJS脚本的明显方法是使用
page.render()
呈现许多屏幕截图,并使用

console.log(JSON.stringify(yourObj, undefined, 4));

格式很好。

我们使用的解决方案是在异常情况下自动截屏,phantomJs会将当前页面呈现到一个文件中,您可以稍后进行检查

这是测试执行阶段

当您编写测试时,只需打开您尝试测试的应用程序的附加窗口(“普通浏览器”),并根据它设计测试


设计完成后,使用phantomJS执行测试。

我的建议是使用日志记录。

CasperJS是一个开源的导航脚本和测试工具,用Javascript为PhantomJS WebKit headless浏览器和SlimerJS(Gecko)编写。它简化了定义完整导航场景的过程,并为执行常见任务提供了有用的高级功能、方法和语法糖,例如:

  • 定义和排序浏览导航步骤
  • 填写和提交表格
  • 单击以下链接(&C)
  • 捕获页面(或部分页面)的屏幕截图
  • 测试远程DOM
  • 记录事件
  • 下载资源,包括二进制资源
  • 编写功能测试套件,将结果保存为JUnitXML
  • 抓取网页内容

此问题的解决方案是使用远程调试器:

--远程调试器端口=9000

使用slimerjs测试带有浏览器的脚本是不可取的,因为它基于gecko,这意味着脚本可能在slimerjs上工作,而不是在phantomjs或viceversa上

有关更多信息,请参阅本指南。。。

您可以改用Selenium/webdriver吗?您可以以与phantomjs类似的方式运行测试,但在真实的浏览器中。它现在支持phantom作为浏览器,这样你就可以继续在(速度慢得多的)浏览器中使用它。坏的是,你有很多截图需要浏览和拼凑,以了解发生了什么。好的是,当一些事情没有计划的时候,你有世界上所有的时间去寻找那些截图中的问题。这很难像我的回答中那样使用自动浏览器窗口。