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

时间:2017-05-03 22:16:27

标签: ruby-on-rails capybara site-prism

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

页面模型的相关部分:

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"。我错过了什么?

1 个答案:

答案 0 :(得分:1)

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

您需要更新所有提到的宝石。