告诉Capybara等到iframe已加载(已准备好)

Mar*_*sen 10 iframe cucumber capybara

有一种优雅的方式来做到这一点?目前我只是使用自定义步骤"等待10秒"来绝对确定,有足够的时间让iframe准备好.我不希望这个功能在我的功能不足的CI VM上失败,因为网络问题很小或CPU峰值.但这意味着功能套件浪费了大量时间,而且如您所知,如果测试套件需要很长时间,那么通常不会在CI服务器之外运行它.

Maz*_*uhl 16

如果你知道你的iframe会是什么,你可以这样做:

within_frame 'iframe_selector' do
    wait_until(10) do
        page.should have_content("Content you're waiting for")
    end
end
Run Code Online (Sandbox Code Playgroud)

wait_until方法将等待10秒或直到条件page.should返回true.

  • 请注意,使用最新的capybara has_content会自动等待,因此您不需要wait_until (10认同)