1

我正在尝试使用 Nightmare.js 获取两个不同页面的两个屏幕截图。在第一页上,我需要登录,然后,该页面会触发一个弹出窗口,其中包含有关用户的一些信息。

问题是即使登录成功,我也无法获得第二个屏幕截图。

这是我的代码:

var Nightmare = require('nightmare');
var vo = require('vo');

var urls = [];
urls.push('http://www.somepage1.com/');
urls.push('http://subdomine.somepage2.com/user');

var sizes = [];
sizes.push({width: 1024, height: 768});

var login = {
    user: 'xxx',
    password: 'xxx'
};

var navigate = function(nightmare) {
    return function(nightmare) {
        nightmare            
            .wait()
            .type('#user', login.usuario) // Substitute with your username
            .type('#password', login.password) // Substitute with your password
            .click('#btnLogin')
            .wait(10000);
    };
};

for(u in urls) {    
        var nightmare = new Nightmare();

        var size = sizes[0];
        var filename = 'screen-' + String("0" + u).slice(-2) + '-' + size.width + '.png';
        var url = urls[u];

        nightmare
            .viewport(size.width, size.height)            
            .goto(url)
            .wait()
            .use(navigate(nightmare))
            .screenshot(filename)
            .run(function(err, nightmare){
                console.log('Done.');
            });    
}

它需要在 NodeJS 中运行。

4

0 回答 0