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)
你可以做
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)