Capybaraのウェイト時間で足りない場合、さらに待たせる。
Capybaraはfind
などの要素検索メソッドで、見つかるまである程度の時間待ってくれます。
時間が足りない場合は
Capybara.default_max_wait_time = 30
などとすることで時間を増やせます。
all('hoge')[0].click
だとおなじみのundefined method `click' for nil:NilClass
で終わる
終わりますので、終わらせないために適当にrescue
します。
def re_find(wait = 0.5, count = 20, &block) yield rescue raise if count == 0 sleep wait re_find(wait, count - 1, &block) end
re_find { page.all('a.niceButton')[0].click }
これで中断もできますし、急場はしのげますね。