javascript - 为什么 PhantomJS 将此网站呈现为黑色方 block ?

标签 javascript phantomjs webpage-screenshot

我正在研究使用 PhantomJS 进行一些基于现有网络 javascript 代码库的自动图像渲染。

但是,使用提供的 rasterize.js 示例代码呈现 our site作为 600x600 黑色图像。其他网站似乎呈现正常。

现在,我们的网站默认使用 WebGL,但有一个 2D 回退,我已经检查过它可以工作(例如,在禁用 WebGL 的 Chrome 中)- 并且 #map=2d 标志应该跳过使用 WebGL。

还有什么其他原因会导致它产生这种纯黑色图像?

也许它是在页面加载之前截取屏幕截图?

有什么方法可以调试吗?

我在我的 Macbook 上的 Ubuntu Precise VM 中使用预编译的 Ubuntu 二进制文件 2.0.1-development

最佳答案

您必须稍等片刻才能加载页面。使用 CasperJS(基于 PhantomJS 的工具)一切正常:

var casper = require('casper').create();//Create casper object

casper.options.viewportSize = {width: 900, height: 900};//Set viewport
casper.start().thenOpen('http://staging.nationalmap.nicta.com/#map=2d', function() {

});
casper.wait(10000, function(){//wait for 10 seconds so we are sure page is loaded
    this.capture('small2d.png');//take a screenshot
});

casper.run();

enter image description here

关于javascript - 为什么 PhantomJS 将此网站呈现为黑色方 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31894072/

相关文章:

javascript - SlickGrid 中的单元格工具提示

webpage-screenshot - 整个网页的屏幕截图(本地主机)

javascript - 所有内容异步加载后捕获页面

javascript - 使用CasperJS将法语字符写入CSV文件,但显示不正确

java - Selenium 在 IE 中的截图

javascript - 如何降低这个函数的圈复杂度?

javascript - 如何将嵌套的 javascript 对象转换为内联的 CSS 样式字符串?

javascript - 在循环中绑定(bind)事件处理程序需要关闭吗?

PhantomJS 没有一致地持久保存 localStorage

javascript - 当抓取 Google 搜索时更改设置特定用户代理字符串时,CasperJS 返回不同的结果