【发布时间】:2017-05-22 18:26:41
【问题描述】:
我是PhantomJS 的新手,正在使用最基本的代码:获取谷歌页面并捕获屏幕截图。
我要获取的 URL 是:https://www.google.com/#tbm=lcl&q=starbucks
如果你在真正的浏览器中打开它,你会看到它是这样的:
但我的 PhantomJS 看到了这个:
一开始我觉得可能是异步网页内容加载太慢了,所以我设法等了好几秒然后抓屏,但我看到 PhantomJS 仍然无法获取内容。
这是我的代码 sn-p:
var page = require('webpage').create();
page.settings.userAgent = 'Mozilla/5.0 (X11; CrOS x86_64 8172.45.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.64 Safari/537.36';
page.viewportSize = { width: 1280, height: 800 };
page.open('https://www.google.com/#tbm=lcl&q=starbucks', function() {
setTimeout(function(){
page.render('screenshot_failed.png');
phantom.exit();
}, 5000);
});
请指出我在获取此网页时可能会错过的内容。谢谢!
【问题讨论】:
-
您是否尝试设置视口大小?
page.viewportSize = { width: 480, height: 800 }; -
嗨@quirimmo 感谢您的评论。是的,我尝试将其设置为 1280x800,但没有帮助。 (我将更新问题以反映这一变化。)
-
哦,很奇怪,你能不能试试另一种解决方案?将其发布为答案,但如果没有帮助,我将删除它。在这里写或粘贴代码太糟糕了-.-
标签: javascript phantomjs automated-tests rendering headless-browser