Poltergeist ruby​​ gem无法在`send_keys`中处理`:shift`修饰符

时间:2016-09-04 06:56:54

标签: poltergeist

似乎只有:Shift修饰符在Poltergeist中不起作用。

环境

  • Poltergeist gem 1.9
  • Phantomjs 2.1.1
  • OSX El Cap
  • Rails 4.2.6

似乎冒犯的测试代码是:

#page.find('#category-text').send_keys [:Shift, '.'] page.find('#category-text').send_keys [:Alt, 'a']

在我的代码中,我允许两个移位 - 。 (即>符号)和 Alt-a 执行相同的功能。这两个键都可以在浏览器中运行(Chrome 50 +,OSX),但只有第二行可以在测试中使用。

在我的代码和测试的其他地方,:Ctrl工作正常。

这可能是:Shift如何在MBP上工作的特殊原因吗?

1 个答案:

答案 0 :(得分:1)

这里的问题不是:特别是shift键,它是'。'的用法。与任何修饰符组合(:shift,:alt。:ctrl等...)。出现此问题的原因是PhantomJS不在其keyCode映射中为标点符号键(https://github.com/ariya/phantomjs/commit/cab2635e66d74b7e665c44400b8b20a8f225153a)提供条目,因此它们最终生成的keyCode为0.

作为解决方法,您可以致电

page.find('#category-text').send_keys [:shift, :period]

应该提供预期的结果。

更新:对此进行修复现在是在Poltergeist master中,当它发生时将在1.11.0版本中