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

查看:540
本文介绍了PhantomJs不会调整窗口大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用以下代码: var width = 1024; var height = 768;

I am using this code: var width = 1024; var height = 768;

和page.viewportSize = {width:width,height:height};我在page.open之前使用.但这是行不通的. 您可以在这里查看我的另一个问题的完整代码- 在PhantomJS中建立引荐标头是不能的不起作用

and page.viewportSize = {width: width, height: height}; im using before page.open . But this doesn't work. The full code you can watch in my another question right here - Faking the Referer Header in PhantomJS is doesn't work

下面是代码:

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.render() renders whole page regardless of viewport size, it's normal behaviour ... what you need is page.clipRect()... something like:

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

    以上内容应在page.open()之前定义-告诉页面以类似于窗口具有给定大小的方式呈现

    The above should be defined before page.open() - tells a page to render the way like the window would be of given size

    要渲染给定尺寸的图像,您需要:

    To render image of given size, you need to:

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

    这篇关于PhantomJs不会调整窗口大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆