Я пишу несколько автоматических тестов ui для формы стиля макета страницы, которую я создаю. Я пытаюсь имитировать клавиатуру на конкретном элементе ввода, но метод .trigger jquery, похоже, не работает. Это то, что у меня есть.Почему в моем сценарии phantomjs не активируются события?
var page = require('webpage').create();
console.log('The default user agent is ' + page.settings.userAgent);
page.settings.userAgent = 'SpecialAgent';
page.open('http://localhost:6543/signup', function (status) {
if (status !== 'success') {
console.log('Unable to access network');
}
else {
var test = page.evaluate(function() {
//entersnumber
$('#number').val('2223443');
//keyup triggers ajax call validating that number is not already in the db
$('#number').trigger('keyup');
//the radio button is clicked
$('input:radio[name=salesBroker]').filter('[value=0]').click();
});
page.render('thing.png')
}
phantom.exit();
});
Ключ важен, потому что он вызовет вызов ajax, чтобы проверить, существует ли это число. Когда я смотрю на изображение thing.png, ошибка проверки не отображается. Это означает, что клавиатура не запускается.
изображение спасаемых:
Если KeyUp работает там должен быть показ ошибки проверки.
Что произойдет, если вы используете собственный метод 'page.sendEvent', как описано [здесь] (https://code.google.com/p/phantomjs/issues/detail?id=760)? – raina77ow
Я посмотрел на это и не пробовал, но событие keyup должно указывать на элемент #number dom. Представление page.sendEvent похоже на общие события, не предназначенные для dom. –
Erm ... не может использоваться 'focus()' для таргетинга на этот элемент (как в примере по ссылке)? – raina77ow