作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试从 ruby 2.4.4 升级到 ruby 2.6.1,但我的所有支持 Javascript 的 Cucumber 测试都不起作用。运行 cucumber 测试时出现以下错误:
unknown keyword: write_timeout (ArgumentError)
./features/support/env.rb:58:in `block in <top (required)>'
./features/support/sign_in_step_helper.rb:4:in `sign_in'
./features/step_definitions/session_steps.rb:2:in `"I log in"'
features/quote_wizard/quotes_wizard.feature:40:in `When I log in'
write_timeout
不存在于整个项目的任何地方。
这就是我的 features/support/env.rb
中的内容(自动生成的注释被抑制):
require 'simplecov'
require 'cucumber/rails'
require 'capybara'
require 'capybara/dsl'
require 'capybara/cucumber'
require 'cucumber/rspec/doubles'
require 'selenium-webdriver'
require_relative './download_helper
SimpleCov.at_exit do
puts 'Simplecov complete'
end
Capybara.default_max_wait_time = 5
Capybara.register_driver :chrome do |app|
options = Selenium::WebDriver::Chrome::Options.new(
args: %w[no-sandbox disable-extensions headless] # Remove `headless` to view test runs in browser
)
options.add_argument('--window-size=1920,1080')
options.add_preference(:download,
directory_upgrade: true,
prompt_for_download: false,
default_directory: DownloadHelper::DEFAULT_DIR)
options.add_preference(:browser, set_download_behavior: { behavior: 'allow' })
driver = Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
bridge = driver.browser.send(:bridge)
path = '/session/:session_id/chromium/send_command'
path[':session_id'] = bridge.session_id
bridge.http.call(:post,
path,
cmd: 'Page.setDownloadBehavior',
params: {
behavior: 'allow',
downloadPath: DownloadHelper::DEFAULT_DIR
})
driver
end
Capybara.javascript_driver = :chrome
ActionController::Base.allow_rescue = false
:truncation instead.
begin
DatabaseCleaner.strategy = :transaction
rescue NameError
raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it."
end
require 'constant_tables'
ConstantTables.load!
Cucumber::Rails::Database.javascript_strategy = :truncation, { except: ConstantTables.table_names }
World(FactoryBot::Syntax::Methods)
编辑:这里是 Gemfile 的测试部分
group :development, :test do
gem 'parallel_tests'
gem 'site_prism'
gem 'capybara-email'
gem 'cucumber-rails', :require => false
gem 'database_cleaner'
gem 'factory_bot_rails'
gem 'rspec-rails'
gem 'rubocop-rails'
gem 'rubocop-rspec'
gem 'selenium-webdriver'
gem 'shoulda'
gem 'timecop'
gem 'chronic'
gem 'sinatra', '~> 2.0.0.rc2'
gem 'simplecov', :require => false
gem 'paratrooper', '3.0.2'
gem 'platform-api', '2.0'
gem 'activerecord-import'
gem 'rb-readline'
end
最佳答案
关于ruby-on-rails - Selenium Webdriver ruby 升级(write_timeout 错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54816782/
我正在尝试从 ruby 2.4.4 升级到 ruby 2.6.1,但我的所有支持 Javascript 的 Cucumber 测试都不起作用。运行 cucumber 测试时出现以下错误:
ActiveRecord 允许您配置数据库 read_timeout 和 write_timeout 值,例如: production: adapter: mysql encoding: ut
我是一名优秀的程序员,十分优秀!