从模块访问JS-widget
问题描述:
我尝试从我的模块访问自定义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
除了includes以外,基类中还有其他的东西吗? – Cheezy 2013-04-28 14:43:57
绝对没有。 BasePage只包含那个包含。 另外,当我直接添加datepicker元素到页面 - 它工作正常。但我需要从我的模块访问它 – 2013-04-29 02:19:29
错误消息说启动浏览器时出现问题。请分享启动浏览器的代码。 – 2013-04-29 09:04:26