我尝试从我的模块访问自定义 JS-widget。基本页面类只包括 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