为特定的水豚click_button通话增加Poltergeist超时

sir*_*ark 1 ruby-on-rails capybara poltergeist

我有一个Rails项目,正在用rspec / capybara / poltergeist / phantomjs测试。我知道我可以使用常规设置来增加一般的poltergeist超时

Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, timeout: 2.minutes)
end
Run Code Online (Sandbox Code Playgroud)

但是有没有办法增加特定请求的超时时间?

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

click_button 'submit', wait: 180
Run Code Online (Sandbox Code Playgroud)

gma*_*iar 5

你可以做

Capybara.using_wait_time(180) do
   click_button 'submit'
end
Run Code Online (Sandbox Code Playgroud)

您可以做的另一件事是

 # 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")
Run Code Online (Sandbox Code Playgroud)