【发布时间】:2013-05-15 18:51:18
【问题描述】:
我正在为我正在构建的单页向导样式表单编写一些自动化 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();
});
keyup 很重要,因为它会触发 ajax 调用来检查号码是否存在。当我查看 thing.png 图像时,没有显示验证错误。这意味着 keyup 没有被触发。
正在保存的图像:
如果 keyup 有效,应该会显示验证错误。
【问题讨论】:
-
如果你使用原生的
page.sendEvent方法会发生什么,就像描述的here 一样? -
我看过了,但没有尝试过,但是 keyup 事件需要针对#number dom 元素。 page.sendEvent 似乎是针对不针对 dom 的一般事件。
-
Erm... 不能使用
focus()来定位此元素(如链接示例中所示)? -
谢谢,我觉得自己很笨。之前没看到链接。效果很好。
-
好的,很高兴为您提供帮助。我应该把这个作为答案吗? )
标签: javascript phantomjs ui-testing