对于page.all,Capybara JS测试失败

时间:2012-06-21 15:05:57

标签: javascript ruby-on-rails ajax rspec capybara

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

当我用pry调试测试时,它会运行。当它自己运行时它会失败。我想这是因为使用pry时增加了时间。有没有办法可以迫使Cabypara重试一段时间?

我的测试代码如下:

    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

1 个答案:

答案 0 :(得分:1)

因为元素在请求时已经存在,Capybara.default_wait_time不起作用,即水豚不等待/重试。我不得不努力工作sleep(0.5)

在这个blog post中得到了很好的解释(只要我在googlez中输入了正确的关键字)。