2013-04-28 159 views
0

我嘗試從我的模塊訪問自定義JS-widget。 基頁類只包含PageObject,DataMagic和RSpec :: Matchers。從模塊訪問JS-widget

我班

require_all 'lib/pages/billing/billing_form_panel.rb' 

class RealtyCpBillingPage < BasePage 
    include BillingFormPanel 
end 

模塊

require_all 'lib/widgets/jquery_datepicker.rb' 

module BillingFormPanel 
    include PageObject 

    button :show_datepicker, class: 'ui-datepicker-trigger' 

    jquery_datepicker :datepicker, id: 'ui-datepicker-div' 

    def datepicker 
     datepicker_element 
    end 

    def select_packet data 
     if data['date'] 
      show_datepicker 
      data['date'] = data['date'].split(' ').reverse 
      datepicker.year = data['date'][0] 
      datepicker.month = data['date'][1] 
     end 
    end 
end 

JQuery的UI日期選擇器插件

class JQueryDatepicker < PageObject::Elements::Div 

    include PageObject 

    PageObject.register_widget :jquery_datepicker, JQueryDatepicker, :div 

    def month month 
     select_list_element(class: 'ui-datepicker-month').select month 
    end 

    def year year 
     select_list_element(class: 'ui-datepicker-year').select year 
    end 
end 

和步驟:

Если(/^если выбираю тариф:$/) do |table| 
    on(RealtyCpBillingPage).select_packet table.hashes.first 
end 

當運行這個測試,我看到以下錯誤:

Unable to pick a platform for the provided browser (RuntimeError) 
    ./lib/pages/billing/billing_form_panel.rb:22:in `datepicker' 
    ./lib/pages/billing/billing_form_panel.rb:34:in `select_packet' 

所以,我怎樣才能獲得從我的模塊,它的Widget?

UPD:瀏覽器從這裏開始hooks.rb

Before do 
    @browser = Watir::Browser.new :firefox 
    @browser.driver.manage.timeouts.implicit_wait = 8 
end 

After do 
    @browser.close 
end 
+0

除了includes以外,基類中還有其他的東西嗎? – Cheezy 2013-04-28 14:43:57

+0

絕對沒有。 BasePage只包含那個包含。 另外,當我直接添加datepicker元素到頁面 - 它工作正常。但我需要從我的模塊訪問它 – 2013-04-29 02:19:29

+0

錯誤消息說啓動瀏覽器時出現問題。請分享啓動瀏覽器的代碼。 – 2013-04-29 09:04:26

回答