我正在为我正在构建的单页向导样式表单编写一些自动ui测试。我试图模拟特定输入元素的键,但.trigger jquery方法似乎不起作用。这就是我所拥有的。
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图像时,验证错误未显示。这意味着没有触发密钥。
正在保存的图片:
如果密钥组件工作,则应显示验证错误。
答案 0 :(得分:3)
看起来应该使用稍微不同的方法来触发与键盘相关的事件:首先将焦点设置在特定输入上,然后使用相关参数调用page.sendEvent方法:
page.evaluate(function() {
$('#number').val('2223443').focus();
});
page.sendEvent('keyup', someKey);
顺便说一下,这是一个相当新的功能 - 它在version 1.7中首次亮相。