2016-09-30 66 views
0

我是phantomjs的新手。我尝试打开Facebook移动页面并截取屏幕截图。这是我的代码:Phantomjs的Facebook手机网站渲染不完整

"use strict"; 
var page = require('webpage').create(); 
page.viewportSize = { 
    width: 360, 
    height: 640 
}; 
page.settings.javascriptEnabled = true; 
page.settings.loadImages = false; 
phantom.cookiesEnabled = true; 
phantom.javascriptEnabled = true; 

// userAgent for Galaxy S5 
page.settings.userAgent = 'Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2875.0 Mobile Safari/537.36'; 
page.open('https://m.facebook.com', function (status) { 
    if (status !== 'success') { 
     console.log('Unable to access network'); 
    } else { 
     setTimeout(funciton() { 
      page.render('fb.png'); 
      phantom.exit(); 
     }, 10000);   
    } 
}); 

截图:

enter image description here

我已经Tryed到的userAgent改变到iPhone 5,增加的setTimeout为1分钟。屏幕截图保持不变。

+3

这不是不完整的,它是坏的,我会说。有趣的是,如果我不覆盖useragent或使用较旧的版本,如Mozilla/5.0(Macintosh; U; Intel Mac OS X 10_6_3; zh-cn)AppleWebKit/533.16(KHTML,如Gecko)Version/5.0 Safari/533.16 '那么屏幕截图没问题。 – Vaviloff

回答

0

就像@Vaviloff说,我删除以下行:

page.settings.userAgent = 'Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2875.0 Mobile Safari/537.36'; 

固定的问题!大声笑!