我正在尝试使用 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 中运行。