【发布时间】:2019-07-24 01:26:42
【问题描述】:
我正在尝试使用 RSpec 来测试一个使用 Capybara 从网站读取数据的库。
我想用 PuffingBilly 记录这个库中的交互,但我根本无法让 PuffingBilly 响应,因为我认为它专注于 RSpec 正在使用的 Capybara 实例。
如何让 PuffingBilly 阻止来自其他 Capybara::Session 的请求?
回溯
6:来自 /home/jessethebuilder/.rvm/gems/ruby-2.5.3/gems/puffing-billy-2.1.1/lib/billy/proxy.rb:19:in block in start' 5:来自 /home/jessethebuilder/.rvm/gems/ruby-2.5.3/gems/puffing-billy-2.1.1/lib/billy/proxy.rb:70:inmain_loop' 4:来自 /home/jessethebuilder/。 rvm/gems/ruby-2.5.3/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in run' 3:来自/home/jessethebuilder/.rvm/gems/ruby-2.5.3/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:inrun_machine' 2:来自/home/jessethebuilder/.rvm/gems/ ruby-2.5.3/gems/puffing-billy-2.1.1/lib/billy/proxy.rb:76:in block in main_loop' 1:来自/home/jessethebuilder/.rvm/gems/ruby-2.5.3/gems/eventmachine-1.2.7/lib/eventmachine.rb:531:instart_server' /home/jessethebuilder/.rvm/gems/ruby-2.5 .3/gems/eventmachine-1.2.7/lib/eventmachine.rb:531:in `start_tcp_server': no acceptor (port is in use or requires root permissions) (RuntimeError)
配置 (spec/spec_helper.rb)
Billy.configure do |c|
c.cache = true
c.cache_request_headers = false
c.ignore_params = []
c.path_blacklist = []
c.merge_cached_responses_whitelist = []
c.persist_cache = true
c.ignore_cache_port = true # defaults to true
c.non_successful_cache_disabled = false
c.non_successful_error_level = :warn
c.non_whitelisted_requests_disabled = false
c.cache_path = 'spec/fixtures/billy/req_cache/'
c.certs_path = 'spec/fixtures/billy/req_certs/'
c.proxy_host = 'localhost'
c.proxy_port = 4461
# c.proxied_request_host = 'localhost'
# c.proxied_request_port = 4461
c.record_requests = true
c.cache_request_body_methods = ['post', 'patch', 'put', 'get']
end
【问题讨论】:
标签: web-scraping rspec capybara