mar*_*oum 1 javascript testing jquery phantomjs casperjs
我的网页有一个输入键按下事件的监听器.我试图运行下面的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);
});
Run Code Online (Sandbox Code Playgroud)
这是关于PhantomJS和jQuery事件的任何问题吗?
看起来,你不能keypress使用jQuery 触发事件.使用基础casper.page.sendEvent函数有一种解决方法.虽然有必要关注keypress将触发的元素.在以下示例中,我使用了keepFocus该sendKeys函数的选项.
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();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2898 次 |
| 最近记录: |