クラスの初期化で PageObjectリンクメソッドを使用したいのですが、うまくいきません :(
ここで私がやろうとしていること:
class MyPage
include PageObject
def initialize
link_names.each do |link_name|
link link_name, :id => "id_#{link_name}"
end
end
def link_names
...get link names from DB...
end
end
MyPage オブジェクトのインスタンスの作成時に Cucumber を実行すると、次のエラーが発生します。
undefined method `link' for #<MyPage:0xa8dcf20> (NoMethodError)
この問題を回避するために現在行っていることは次のとおりです。
class MyPage
include PageObject
link_names = ['link_a', 'link_b']
link_names.each { |link_name|
link link_name, :id => "id_#{link_name}"
}
end
これは正常に機能していますが、モジュールにリンク名をハードコーディングしたくありません。
また、最初のケースで初期化の時点でメソッドが利用できない理由を理解できません。