PhantomJS,但不是无头?

时间:2014-07-15 22:51:22

标签: phantomjs headless-browser

有没有办法获得PhantomJS(或类似物)渲染的实时视图?

我想在与其所针对的页面进行交互(或至少看到一个屏幕截图)时开发我的自动化脚本。

4 个答案:

答案 0 :(得分:3)

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

您将无法与之互动。您可能希望使用screengrabber在测试很长时录制交互视频,如果您在测试用例中没有发现问题,则不想再次运行测试套件。


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

将一些对象记录到控制台
console.log(JSON.stringify(yourObj, undefined, 4));

格式不错。

答案 1 :(得分:1)

我们使用的解决方案是在出现例外的情况下自动截屏,phantomJs会将当前页面渲染成一个您可以稍后检查的文件。

这是测试执行阶段。

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

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

答案 2 :(得分:0)

我的建议是使用日志记录。 http://casperjs.org/

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

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

答案 3 :(得分:0)

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

--remote-debugger-port=9000

不建议使用slimerjs来使用浏览器测试脚本,因为它基于gecko,这意味着脚本可能在slimerjs上运行而不是在phantomjs上,反之亦然。

请查看本指南以获取更多信息... https://drupalize.me/blog/201410/using-remote-debugger-casperjs-and-phantomjs