具有有效 Capybara 元素的 send_keys 的未定义方法

Undefined Method for send_keys with a valid Capybara element

我正在尝试调用 .send_keys 我使用 siteprism 页面模型检索到的 Capybara 元素。

页面模型的相关部分:

class SearchPage < SitePrism::Page
  element :omnisearch_input, "input.db-search__input"

在 rails 控制台中我可以 运行:

@search_page.omnisearch_input

# And then I get:
<Capybara::Element tag="input" path="//HTML[1]/BODY[1]/DIV[1]/SECTION[1]/SECTION[1]/DIV[1]/INPUT[1]">

这对我来说意味着我有一个 Capybara 元素,这正是文档所说的我可以调用 .send_keys。但是当我 运行:

@search_page.omnisearch_input.send_keys "some text"
# Result:
NoMethodError: undefined method `send_keys' for #<Capybara::Node::Element:0x007f9effbaaef0>

为了进一步加强这一点,我可以毫不费力地在同一元素上调用 .set "some text"。我错过了什么?

Capybara 2.4.4 已有 2.5 年历史,send_keys 已添加到 2.5.0 中的 Element - https://github.com/teamcapybara/capybara/blob/master/History.md#version-250

您需要更新所有提到的 gem。