2012-06-21 42 views
1

我想实现使用水豚,RSpec和JS(使用Webkit)的请求规范。我有一个测试发送一个JS请求(jQuery.load),它将返回一个页面,该页面将嵌入到现有页面中。Capybara JS测试失败的page.all

当我用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

因为该元素已经根据要求存在Capybara.default_wait_time不工作,即水豚不会等待/重试。我不得不在硬盘sleep(0.5)上运行。

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