0

ちょっと悪夢のある要素のスクリーンショットを撮ろうとしていますが、このスクリーンショットから関数を使用してテキストを抽出し、その結果を で使用したいと考えていますnightmare.type()。問題は、使用するnightmare.run()と、スクリーンショットが存在しないというエラーが表示されることです。どうすればこれを修正できますか? これは私のコードです:

var Nightmare = require('nightmare');
var Screenshot = require('nightmare-screenshot');

var nightmare = new Nightmare();
nightmare.goto('website');
//Takes screenshot of element
nightmare.use(Screenshot.screenshotSelector('screenshot' + i + '.png', 'img[id="yw0"]'));
nightmare.type('input[id=AuthForm_login]', username);
nightmare.type('input[id=AuthForm_password]', password);

nightmare.type('input[id=upload]', image.decodeFile('screenshot' + i + '.png', function(err, result){
    //Returns Text from the Screenshot taken above!
    return result.text;
}));
nightmare.run();

行を削除すると:

nightmare.type('input[id=upload]', image.decodeFile('screenshot' + i + '.png', function(err, result){
        //Returns Text from the Screenshot taken above!
        return result.text;
    }));

すべてが正常に機能し、スクリーンショットが取得されます。

4

1 に答える 1

0

悪夢はPhantomjsを使用しているので、その方法でそれを行うことができます.

言った@fernandopasikへのクレジット:

プラグインを実行するための「use」メソッドを使用して、これを行う方法を見つけました。

nightmare = new Nightmare(); urls.forEach(function (url) {
    nightmare.goto(url).screenshot(path).use(function () {
        console.log('finished one');
    }); });

nightmare.run(function () {
    console.log('finished all'); });

NightmareJS スクリーンショット コールバック

于 2015-02-18T16:08:26.530 に答える