【发布时间】:2023-03-19 09:14:01
【问题描述】:
我尝试从我的模块访问自定义 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
【问题讨论】:
-
除了包含之外,基类中还有其他内容吗?
-
绝对没有。 BasePage 只包含包含的内容。此外,当我直接将 datepicker 元素添加到页面时 - 它工作正常。但我需要从我的模块访问它
-
错误信息说启动浏览器有问题。请分享启动浏览器的代码。
-
更新帖子。有什么建议吗?
标签: ruby cucumber pageobjects page-object-gem