【问题标题】:How to embed an element in a page object widget如何在页面对象小部件中嵌入元素
【发布时间】:2016-05-26 20:39:50
【问题描述】:

我有以下小部件...

class MdRadioButton < PageObject::Elements::RadioButton
  extend PageObject::Accessors
  label :title, :class => "control-label"
  def select
    self.click
  end
  def selected?
    self.class_name.include? "md-checked"
  end
end
PageObject.register_widget :md_radio_button , MdRadioButton, :element

然后我尝试访问这样的标题...

md_radio_buttons(:rdio, :class => "my-radio")
...
rdio_elements.each do |option|
  if option.title == alert_group
    option.select
  end
end

但是当我option.title 我得到...

#<:htmlelement:0x162e57d8>

的未定义方法“平台”

option.select 工作正常

更新

我试过了……

class MdRadioButton < PageObject::Elements::RadioButton
  extend PageObject::Accessors
  include PageObject

现在.title 有效,但.select 无效。

参数数量错误(0 代表 1)

【问题讨论】:

    标签: pageobjects page-object-gem


    【解决方案1】:

    要让访问器方法在小部件中工作,它们需要访问平台。这可以通过添加attr_reader 来完成:

    class MdRadioButton < PageObject::Elements::RadioButton
      extend PageObject::Accessors
      attr_reader :platform
    
      label :title, :class => "control-label"
      def select
        self.click
      end
      def selected?
        self.class_name.include? "md-checked"
      end
    end
    

    【讨论】:

    • 我知道它会是这样的,我只是不知道平台在哪里。谢谢,我会测试一下!
    猜你喜欢
    • 2016-02-25
    • 2022-06-28
    • 2012-03-06
    • 1970-01-01
    • 1970-01-01
    • 2016-10-17
    • 1970-01-01
    • 2015-03-21
    • 1970-01-01
    相关资源
    最近更新 更多