PhantomJs不调整窗口大小。[英] PhantomJs doesn't resize the window

问题描述

我正在使用此代码:变量宽度 = 1024;变量高度 = 768;

和page.viewportSize = {宽度:宽度,高度:高度};我在 page.open 之前使用.但这不起作用.您可以在我的另一个问题中观看完整代码 -在 PhantomJS 中伪造 Referer 标头不会'不工作

代码如下:

var width = 1024;
var height = 768;
var page = require('webpage').create();
//referal massive
var reff = ["https://www.facebook.com/messages/t/","https://google.com","https://youtube.com","https://twitter.com/"];
//random massive
var randreff = Math.floor(Math.random() * (reff.length));
//reffer
page.customHeaders = {
  "Referer": (reff[randreff])
};
//console refer
console.log(reff[randreff]);
var urls = ['http://test.com/','http://test.com/2017/02/blog-post.html','http://test.com/'];
var i = 0;
function OpenPage(){
    setTimeout(function(){
            page.open(urls[i], function(status) {
                    if (status == 'success') {
                page.viewportSize = {width: width, height: height};
                    page.render('example' + i + '.png');
            }
            i++;
            if(i <= urls.length - 1){ 
                OpenPage();
            }else{
               phantom.exit();
            }
        });
    },5000);
}
OpenPage();
  • 解决无效,推荐无效=(

推荐答案

page.render() 渲染整个页面而不管视口大小,这是正常行为...您需要的是 page.clipRect()... 类似于:

page.viewportSize = {width: width, height: height};

上面的内容应该在 page.open() 之前定义 - 告诉页面呈现方式就像窗口将具有给定大小一样

要渲染给定大小的图像,您需要:

page.clipRect = {
    top: 0,
    left: 0,
    height: viewportSize.height,
    width: viewportSize.width
  };

page.render(...);

本文地址:https://www.itbaoku.cn/post/1740186.html