如何解决如何使用远程硒扩展水豚超时
我创建了一个SystemSpec来使用远程硒截屏。该测试包含三个步骤。
- 创建100,000条记录
- 访问/ book
- 拍摄一张屏幕截图
在第3步中,我总是检测到超时,并且总是在一些记录中获取屏幕截图。
require 'rails_helper'
RSpec.describe 'Books',type: :system do
before do
100_000.times do
Book.create!(price: 200)
end
end
it 'scenario #1' do
visit books_path
take_screenshot # always timed out !!!
end
end
Failures:
1) Books scenario #1
Failure/Error: visit books_path
Net::ReadTimeout:
Net::ReadTimeout with #<TCPSocket:(closed)>
[Screenshot]: /app/tmp/screenshots/failures_r_spec_example_groups_books_scenario_#1_695.png
# /bundle/ruby/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/remote/http/default.rb:129:in `response_for'
# /bundle/ruby/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/remote/http/default.rb:82:in `request'
# /bundle/ruby/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/remote/http/common.rb:64:in `call'
# /bundle/ruby/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/remote/bridge.rb:167:in `execute'
# /bundle/ruby/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/remote/w3c/bridge.rb:567:in `execute'
# /bundle/ruby/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/remote/w3c/bridge.rb:59:in `get'
# /bundle/ruby/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/common/navigation.rb:32:in `to'
# /bundle/ruby/2.7.0/gems/capybara-3.33.0/lib/capybara/selenium/driver.rb:71:in `visit'
# /bundle/ruby/2.7.0/gems/capybara-3.33.0/lib/capybara/session.rb:278:in `visit'
# /bundle/ruby/2.7.0/gems/capybara-3.33.0/lib/capybara/dsl.rb:53:in `call'
# /bundle/ruby/2.7.0/gems/capybara-3.33.0/lib/capybara/dsl.rb:53:in `visit'
# ./spec/system/books_spec.rb:11:in `block (2 levels) in <top (required)>'
我想延长时间以等待屏幕截图完成。怎么做??
我尝试更新等待时间。首先,我添加了Capybara.default_max_wait_time = 1200
,但没有任何意义。其次,我有如下更新水豚的配置,但它也是输出错误消息,例如unknown option: {:"enable-features"=>"NetworkService,NetworkServiceInProcess"}
require 'capybara/rspec'
RSpec.configure do |config|
config.before(:each,type: :system) do
driven_by :selenium,using: :headless_chrome,options: {
browser: :remote,'enable-features': 'NetworkService,NetworkServiceInProcess',url: ENV.fetch("SELENIUM_DRIVER_URL"),desired_capabilities: :chrome
}
Capybara.server_host = 'web'
Capybara.app_host='http://web'
end
end
更新
我像这样更新books_spec.rb以等待渲染,但是结果是“超时”。渲染/ books大约需要16秒。输出“超时”不会太长。
require 'rails_helper'
RSpec.describe 'Books',type: :system do
before do
100_000.times do
Book.create!(price: 200)
end
end
it 'scenario #1' do
visit books_path
expect(page).to have_content('New Book')
take_screenshot
end
end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。