具有有效 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。
我正在尝试调用 .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。