作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在页面上有一个 ExtJs 文本字段。我在 casper.js 中用一些值填充它,效果很好。
然后我想聚焦这个字段并按 Enter 键,因为没有 <form>
围绕它提交。
我尝试的是:
casper.then(function() {
// the text field is filled with the string
this.sendKeys('#searchfield', 'some text');
this.evaluate(function() {
// this does not put the field in focus
document.querySelector('#searchfield').focus();
// so 'pressing' enter has no effect at all
var evt = document.createEvent('KeyboardEvent');
evt.initKeyboardEvent('keypress', true, true, window, 0, 0, 0, 0, 0, 13);
document.dispatchEvent(evt);
});
});
你知道如何实现吗?
最佳答案
你的代码
evt.initKeyboardEvent('keypress', true, true, window, 0, 0, 0, 0, 0, 13);
看第四个param,我猜应该是触发元素。这里应该是 document.querySelector('#searchfield')
。
一个提示:在casper evaluate中,final返回一个true,如果evaluate有错误,你会得到null。
var result = this.evaluate(function(){ /*code is here*/ return true;})
检查结果,如果成功
关于javascript - 卡斯珀.js : press key "enter" in an ExtJs input field,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16942717/
我正在尝试获取此页面上的“David Welsh”文本:http://foster.uw.edu/faculty-research/directory/david-welsh/ 当我在浏览器控制台,我
我在页面上有一个 ExtJs 文本字段。我在 casper.js 中用一些值填充它,效果很好。 然后我想聚焦这个字段并按 Enter 键,因为没有 围绕它提交。 我尝试的是: casper.then(
我是一名优秀的程序员,十分优秀!