【问题标题】:Accessing to JS-widget from module从模块访问 JS-widget
【发布时间】: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


【解决方案1】:

小部件类中无需包含 PageObject。 完整答案在这里 https://github.com/cheezy/page-object/issues/173

【讨论】:

    猜你喜欢
    • 2017-02-12
    • 2020-05-29
    • 2020-08-06
    • 1970-01-01
    • 2012-01-18
    • 1970-01-01
    • 2020-06-20
    • 2021-03-16
    • 1970-01-01
    相关资源
    最近更新 更多