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

Poltergeist ruby gem fails to process `:shift` modifier in `send_keys`

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

环境

出现冒犯的测试代码是:

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

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

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

这可能是 :Shift 在 MBP 上的工作方式所特有的吗?

这里的问题不是具体的 :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 版本中修复