CasperJS:吞下Enter之类的特殊键?

问题描述 投票:6回答:1

[我正在尝试使用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();

(我们以casperjs test this-test.js的身份运行]

我已经确认sendKeys正在将文本输入到输入中,但是该文本从未显示在#stage元素中。按键的“原始” PhantomJS实现可以正常工作,其中webpage.sendEvent('keypress', '\uE007')会触发页面上的事件处理程序。查看casper.sendKeys的来源,我发现它委托给Casper实例的PhantomJS实例(即sendEvent)上的line 1613 in the current version of casper.js

有什么想法吗?任何人都可以使用这些密钥来进行CasperJS测试吗?

[我正在尝试使用CasperJS编写测试,以用于在输入中按Enter键是页面的触发器,以便该页面对输入的文本进行某些处理。缩写/ ...

javascript casperjs
1个回答
12
投票

您可能想将{keepFocus:true}添加到第一个sendKeys调用。如果您看到源代码,但未添加keepFocus,则它将模糊文本区域,这意味着您的第二个sendKeys调用将不接受按键。


-1
投票

bing bong bing bong bing bong bing bong

© www.soinside.com 2019 - 2024. All rights reserved.