gpt4 book ai didi

javascript - CasperJS:吞下像 Enter 这样的特殊键?

转载 作者:数据小太阳 更新时间:2023-10-29 05:04:05 26 4
gpt4 key购买 nike

我正在尝试使用 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 元素中。按键的“vanilla”PhantomJS 实现工作正常,其中 webpage.sendEvent('keypress', '\uE007') 导致页面事件处理程序触发。查看 casper.sendKeys 的源代码,我发现它委托(delegate)给了 Casper 实例的 PhantomJS 实例(即 line 1613 in the current version of casper.js )上的 sendEvent

有什么想法吗?有人获得了这些 key 以在 CasperJS 测试中工作吗?

最佳答案

您可能希望将 {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();

关于javascript - CasperJS:吞下像 Enter 这样的特殊键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21843958/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com