JS测试:从CasperJS和PhanthomJS触发jQuery keypress事件

我的网页有一个输入键按下事件的监听器。 我试图运行下面的casperjs代码来触发此事件,但没有成功。

虽然没有提示错误,但是(evaluate)函数返回true并且代码在我的chrome控制台上正常工作,应该向服务器发送请求的函数结果永远不会发生

casper.then(function(){ var result = this.evaluate(function(term){ var search_form_id = "#search-form"; $(search_form_id).val(term); jQuery(search_form_id).trigger(jQuery.Event('keypress', {which: 13, keyCode: 13})); return true; }, 'Techcrunch'); console.log(result); }); 

这是关于PhantomJS和jQuery事件的任何问题吗?

看起来,你不能使用jQuery触发keypress事件。 有一个使用底层casper.page.sendEvent函数的解决方法。 虽然有必要关注元素,触发keypress 。 在下面的示例中,我使用sendKeys函数的keepFocus选项。

 var casper = require('casper').create(); casper.start("https://duckduckgo.com/"); casper.then(function() { this.sendKeys("#search_form_homepage input[name=q]", "casperjs", { keepFocus: true }); this.capture("typed.png"); this.page.sendEvent("keypress", this.page.event.key.Enter); }); casper.waitForSelector("#links_wrapper"); casper.then(function() { this.capture("searched.png"); }); casper.run();