0

モジュールからカスタム JS ウィジェットにアクセスしようとしています。基本ページ クラスには、PageObject、DataMagic、および RSpec::Matchers のみが含まれます。

私のクラス

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'

では、モジュールからそのウィジェットにアクセスするにはどうすればよいですか?

UPD: ブラウザはここから開始しますhooks.rb

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

After do
    @browser.close
end
4

1 に答える 1