我试图将一些Capybara选择器移到模块助手中。
module Helper
def element
page.all(:css, '.element_class')
end
def sub_element
find('.sub_element_class')
end
end
我的测试是
scenario 'get the sub element'
visit 'path'
element.sub_element.click_button 'Button'
expect(page).to have_content('something')
end
我得到NoMethodError:
NoMethodError: 未定义的方法`sub_element' for Capybara :: Node :: Element:0x006fb54911ef88
但是,如果我直接使用方法'发现'而不是我自己的方法' sub_element',一切都按预期工作。
element.find('.sub_element_class').click_button 'Button'
我无法在文档中找到是否可以在节点元素上使用模块的方法。
答案 0 :(得分:0)
您需要返回self
来链接此方法。
module Helper
def element
page.all(:css, '.element_class')
self # Add this
end
def sub_element
find('.sub_element_class')
end
end
关于方法链的