Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

Capybara | 検証対象のScopeをXPathで指定

概要

検証対象のScopeをXPathで指定

内容

検証対象のScopeをXPathで指定します。
例えばユーザー一覧をテーブル構造で出力している場合に各行のtrにユーザーIDの値を
付与していたとします。
任意の行の値のみ検証したい場合は以下のようにします。

admin_id = (User.find :name => "admin").id
within(:xpath, "//tr[@id=#{admin_id}]") do
  page.should have_content("admin")
end

のようにします。

※capybaraのwithinはデフォルトだとCSSセレクタを利用しています。
ここでは明示的に指定してxpathを利用しました。