2011-01-27 14 views
9

私は、アップロードしたばかりの画像が次のページに存在することを検証するシナリオを持っています。Cucumber/Capybaraのステップ定義(Rails 3)でxpath regex検索を行うにはどうすればよいですか?

私はlisting_idに基づいて可変のフォルダ構造を持っていることを除いて、以下は素晴らしいです。正規表現を使用しての画像をURL全体ではなくファイル名だけに一致させるにはどうすればよいですか?

Then /^I should see the image "(.+)"$/ do |image| 
    page.should have_xpath("//img[@src=\"/public/images/#{image}\"]") 
end 

答えて

15

そのsrcあなたのファイル名が含まれている任意のimgに一致するであろう、page.should have_xpath("//img[contains(@src, \"#{image}\")]")を試してみてください。

+0

むしろ 'ends-with'関数を使うことをお勧めします。 –

+0

@ alpha-mouseあなたはそのコード例を表示できますか? –

+0

@Jamis:私は、 'contains'の代わりに' ends-with' XPath関数を使うつもりでした。私はルビーについて何も知らないが、@ dmarkowのコードをコピー貼り付けると 'page.should have_xpath(" // img [ends-with(@src、\ "#{image} \")] '' –

0

オプションを持っている場合は、CSSセレクタを使用すると、この場合には、より簡潔である。そして、上の「$」は、文字列の端部に対して一致を示すために「href$」の端部

page.should have_selector(:css, "a[href$='#{image}']") 

注意。

関連する問題