2016-05-26 1 views
2

je le widget ci-dessous ...Comment intégrer un élément dans un widget objet page

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 

J'essaye d'accéder au titre comme celui-ci ...

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

Mais quand je option.title je reçois ...

méthode non définie plate-forme » pour # < Watir :: HTMLElement: 0x162e57d8 \ >

option.select fonctionne très bien

Mise à jour

J'ai essayé ...

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

maintenant les œuvres .title mais .select ne fonctionne pas.

nombre incorrect d'arguments (0 pour 1)

Répondre

3

Pour les accesseurs de travailler au sein d'un widget, ils ont besoin pour accéder à la plate-forme. Cela peut être fait en ajoutant un 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 
+0

Je savais que ça allait être quelque chose comme ça, je ne savais pas où se trouvait la plateforme. Merci je vais le tester! – Jackie