Ruby on rails 增加特定水豚点击按钮呼叫的poltergeist超时

Ruby on rails 增加特定水豚点击按钮呼叫的poltergeist超时,ruby-on-rails,capybara,poltergeist,Ruby On Rails,Capybara,Poltergeist,我有一个rails项目,我正在用rspec/capybara/poltergeist/phantomjs测试它。我知道我可以通过常规设置来增加常规恶鬼超时 Capybara.register_driver :poltergeist do |app| Capybara::Poltergeist::Driver.new(app, timeout: 2.minutes) end 但是有没有办法增加特定请求的超时时间 我有一个带有按钮(id=submit)的页面,它在返回之前启动一个长时间(90-

我有一个rails项目,我正在用rspec/capybara/poltergeist/phantomjs测试它。我知道我可以通过常规设置来增加常规恶鬼超时

Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, timeout: 2.minutes)
end
但是有没有办法增加特定请求的超时时间

我有一个带有按钮(id=submit)的页面,它在返回之前启动一个长时间(90-120秒)的运行过程。我正在优化后端以缩短请求时间,但与此同时,我想在测试时增加特定请求的超时时间,因此

click_button 'submit', wait: 180
你能行

Capybara.using_wait_time(180) do
   click_button 'submit'
end
你能做的另一件事是

 # capybara.rb

 Capybara.register_driver :poltergeist do |app|
     Capybara::Poltergeist::Driver.new(app, timeout: 30)
 end

 Capybara.register_driver :poltergeist_long do |app|
     Capybara::Poltergeist::Driver.new(app, timeout: 180)
 end


 # wherever.rb

 session = Capybara::Session.new(:poltergeist_long)
 session.visit("http://thatlongwaittime.com")

通过增加默认等待时间(通常在env.rb文件中配置)的值,可以增加特定请求的Timeuouts。 为了更好地理解这一点,让我们看看下面提到的代码:

黄瓜档案:

When Joe is on abc page
Then Joe clicks submit button
单击“提交”按钮的步骤定义:

Then(/^Then Joe clicks submit button$/) do
  Capybara.default_wait_time = 120  // increasing the default wait time to 180 seconds
  click_button('submit')  // performing the action
  Capybara.default_wait_time = DEFAULT_WAIT_TIME  // reset the wait time to its default value after clicking submit button.
end
注意:默认等待时间的值可以在env.rb文件中配置


希望这有帮助:)

这不会影响Capybara的等待时间吗?这是指Capybara等待javascript和其他非固有页面资产加载和执行的时间,而不是Poltergeist的读取超时时间。您似乎可以通过