2014-03-26 50 views
0

我試圖移動一些模塊助手內的水豚選擇器。來自水豚節點元素的訪問模塊方法

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: undefined method `sub_element' for Capybara::Node::Element:0x006fb54911ef88

,但是,如果我用直接的方法 '發現',而不是我自己的方法 'sub_element' ,一切都按預期工作。

element.find('.sub_element_class').click_button 'Button' 

我在文檔中找不到在節點元素上是否可以使用模塊的方法。

回答

0

您需要返回self來鏈接此方法。

module Helper 
    def element 
    page.all(:css, '.element_class') 
    self # Add this 
    end 

    def sub_element 
    find('.sub_element_class') 
    end 
end 

More info關於方法鏈接。