Capybara 没有方法错误

No method error for Capybara

我想在标签字段中添加标签。要填写标签字段,我必须添加 ',',或者使用标签名称按回车键,例如 "Ezgi,"。我为它写了这些步骤。

When(/^I enter "([^"]*)" on Label field$/) do |arg1|
    within('.x-anchor-form-item', :text=>'Label') do
        find('.x-tagfield-body').click
        fill_in('', :with=>arg1)
    end
    if page.has_css?('ul', :text=>arg1) then
        within('ul',:text=>arg1) do 
            find('li', :text=>arg1).click
        end 
    else
        within('.x-anchor-form-item', :text=>'Label') do
            find('.x-tagfield-body').native_send_keys(:enter)
        end
        within('.x-window-resizable', match: :first) do 
            find_all('a', :text=>'Save')[1].click
        end
        within('.x-anchor-form-item', :text=>'Label') do
            find('.x-form-text-wrap.x-form-text-wrap-default').click
            fill_in('', :with=>arg1)
        end
        within('ul',:text=>arg1) do 
            find('li', :text=>arg1).click
        end 
    end
end

我试着写了这么多 类 来填补这个领域,但是那没有用。对于第11步,我查看了这样一条消息:

undefined method `native_send_keys' for #<Capybara::Node::Element:0x00000005119270> (NoMethodError)

有谁知道这个案例吗?有人可以帮助我吗?

水豚中没有方法native_send_keys。您从中复制的代码可能正在调用 element.native.send_keys(...) 但您也不应该调用它。只需在所需元素上调用 send_keys - http://www.rubydoc.info/gems/capybara/Capybara/Node/Element#send_keys-instance_method 。在你的情况下是

find('.x-tagfield-body').send_keys(:enter)

鉴于所提供的信息,无法确定这是否真的适用于您尝试与之交互的控件,但它会解决 "no method error" 这个问题。