Capybara の all メソッド(find_all メソッド)で正規表現を使うときの注意点

Capybara

Ruby で Web スクレイピングをする際はCapybaraという選択をする場合が多いと思います。その際、Capybara の all メソッド(find_all メソッド)で正規表現を使って抽出をするときの注意点です。

オプションの引数として:textを用いるとき

ドキュメントにもあるように、引数として:textを使うのは分かると思います。そして取りうる値は「文字列」または「正規表現」です。この「正規表現」を取るときの記述方法が問題となります(なりました)。

正規表現はクォーテーションでくくらない

正解から示すと、以下のように書かないといけません。

page.all('a', :text => /ruby/)

そうです、クォーテーションで正規表現をくくってはいけません。これで数時間ハマりました……。

Powered by はてなブログ