fou*_*ama 6 javascript casperjs
我正在尝试使用CasperJS编写一个测试,其中按下输入中的Enter键是页面的触发器,用于输入文本,否则键入输入.
CasperJS测试的缩写/简化版本:
casper.start('http://localhost:3000/input-demo', function() {
this.sendKeys('#demo-input', 'demo text');
this.sendKeys('#demo-input', '\uE007');
this.test.assertEquals(this.getHTML('#stage'), 'input demo');
});
casper.run();
Run Code Online (Sandbox Code Playgroud)
(我们在哪里运行casperjs test this-test.js)
我已经验证sendKeys了将文本输入到输入中,但该文本从未显示在#stage元素中.按键的"vanilla"PhantomJS实现工作正常,webpage.sendEvent('keypress', '\uE007')导致页面上的事件处理程序触发.查看源代码casper.sendKeys,我看到它委托给sendEventCasper实例的PhantomJS实例(即当前版本的casper.js中的第1613行).
有任何想法吗?谁有这些钥匙才能在CasperJS测试中工作?
小智 12
您可能希望将{keepFocus:true}添加到第一个sendKeys调用.如果您看到源代码,而不添加keepFocus,则会模糊文本区域,这意味着您的第二个sendKeys调用将不接受按键.
这似乎有效.
casper.start('http://localhost:3000/input-demo', function() {
this.sendKeys('#demo-input', 'demo text', {keepFocus: true});
this.sendKeys('#demo-input', casper.page.event.key.Enter , {keepFocus: true});
this.test.assertEquals(this.getHTML('#stage'), 'input demo');
});
casper.run();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9183 次 |
| 最近记录: |