Capybara JS 测试失败了 page.all

Capybara JS test fails for page.all

本文关键字:page all 失败 JS 测试 Capybara      更新时间:2023-09-26

我正在尝试使用Capybara,RSpec和JS(使用Webkit)实现请求规范。我有一个测试,它发送一个JS请求(jQuery.load),它将返回一个页面,该页面将嵌入到现有页面中。

当我用撬子调试测试时,它会通过。当它自己运行时,它会失败。我想这是由于使用撬子时增加了时间。有没有办法强制卡比帕拉重试一段时间?

我的测试代码如下所示:

    describe "load list for given period", js:true do
      it "loads the last entry" do
        page.fill_in "period_value", with: "1"
        page.select "Entries", from: "period_unit"
        page.click_link "update_list_section"
        page.all(:xpath, "//div[@id='list_section_wrapper']/table/tbody/tr").count.should == 2
      end
    end

因为该元素在请求时已经存在,所以Capybara.default_wait_time不起作用,即水豚不会等待/重试。我不得不付出艰苦的sleep(0.5)才能让它发挥作用。

在这篇博文中得到了很好的解释(一旦我在googlez中输入正确的关键字)。