2016-07-14 10 views
1

私はRSpecのと、ページオブジェクトの宝石を使用して、私は、私は、テキストによってリンクを取得したいのでカスタムパラメータでページオブジェクトの宝石の要素を検索するには?

link(:derect_link, text: "#{custom_text}" 

のようなカスタムパラメータを持つ要素を作成したいと私はテストを開始すると、このテキストが変更されました。

仕様シナリオでどのように使用できますか?

答えて

1

アクセサメソッドは、実行時にカスタムパラメータをサポートしません。リンクのメソッドを手動で作成する必要があります。リンク・アクセッサメソッドによって作成されたのと同等には次のようになります。

class MyPage 
    include PageObject 

    def derect_link_element(text) 
    link_element(text: text) 
    end 

    def derect_link(text) 
    derect_link_element(text).click 
    end 

    def derect_link?(text) 
    derect_link_element(text).exists? 
    end 
end 

これは、あなたがリンクのテキストを指定することを除いて、標準的な方法のように使用することになります。

# Click the link 
page.derect_link('custom_text') 

# Check if the link exists 
page.derect_link?('custom_text') 

# Get the link element to perform other actions (eg inspect attribute values) 
link = page.derect_link_element('custom_text') 
link.attribute('href') 
+0

'NoMethodError:未定義メソッドの 'link_element' for# ' このエラーが発生しました – hoaiviet

+0

残念なことに、ネストされた要素メソッドは 'browser'に対して呼び出されません。この例は修正されています。 –

+0

ありがとう@ジャスティンコ、その作品 – hoaiviet

関連する問題