Nightmare.js を使用して、2 つの異なるページの 2 つのスクリーンショットを取得しようとしています。最初のページでログインする必要があります。その後、ページはユーザーに関する情報を含むポップアップを起動します。
問題は、ログインが成功したにもかかわらず、2 番目のスクリーンショットを取得できないことです。
これが私のコードです:
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 で実行する必要があります。