モジュールからカスタム 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