Тип метода в nightmare.js присваивает текст входному значению свойства элемента управления. Из-за этого приведения в действие, событие нажатия клавиши не запускается на странице, которую вы пытаетесь очистить. Любой способ отправить событие keydown после «type»?Отправка keydown, нажатие на тип в nightmare.js
Редактировать 1-
Ниже приведен пример, чтобы отправить событие с помощью JQuery, который не работает или-
var Nightmare = require('nightmare');
var vo = require('vo');
var nightmare = Nightmare();
vo(run)(function(err, result) {
if (err) throw err;
});
function *run() {
var title = yield nightmare
.goto('http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes')
.type('#txtChar','\n')
.evaluate(function() {
var e = $.Event("keypress", { which: 13 });
$('#txtChar').trigger(e);
return "Key you pressed is : " + $('#txtChar').val();
});
yield nightmare.pdf('type.pdf');
setTimeout(function() {
console.log(' ' + title);
nightmare.end();
process.exit();
},2000);
}
Edit 2-
Использование Юникода эквивалент ключи как метод типа type вызывает связанные события как-то, не совсем точно, как работает этот хак, но он работает!
Здесь работает ПРИМЕР-
var Nightmare = require('nightmare');
var vo = require('vo');
var nightmare = Nightmare();
vo(run)(function(err, result) {
if (err) throw err;
});
function *run() {
var title = yield nightmare
.goto('http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes')
.type('#txtChar','1') //so we have focus on textbox
.type('document', '\u000d')
.evaluate(function() {
return "Key you pressed is : " + $('#txtChar').val();
});
yield nightmare.pdf('type.pdf');
setTimeout(function() {
console.log(' ' + title);
nightmare.end();
process.exit();
},2000);
}
Спасибо за ваш ответ. Я попробовал оба варианта, которые вы предложили, ни для меня не работает, проверьте пример, который я добавил выше, который реализует ваше предложение. –
Я обновил ответ, я использовал неправильный символ Юникода. – Evers