2015-02-18 1 views
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; 
    })); 

Все работает отлично, и я получаю скриншот.

ответ

0

Как кошмар использует Phantomjs, вы можете сделать это таким образом, хотя я нашел это ниже, что должно помочь.

Кредит @fernandopasik, который сказал:

Я нашел способ сделать это, с «использованием» метода для выполнения плагинов.

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 screenshot callback

+0

Я не могу использовать это, потому что, когда 'nightmare.run()' он imediatly выбрасывает ошибку, и мне нужно обработать изображение первого и повторно использовать его позже в тот же кошмар дие – Alesfatalis

Смежные вопросы