Capybara :: ElementNotFound仅适用于特拉维斯的所有规格

我正在使用selenium,capybara和rspec进行测试,我注意到所有测试都在本地传递,但是在travis上,所有测试都失败了,每个规范都出现此错误。

Capybara::ElementNotFound: 

我不确定这里有什么问题,这是.travis.yml上的specs runner

 script: - xvfb-run bundle exec rspec spec/features/*.rb 

对于spec_helper.rb这里是我的配置:

 RSpec.configure do |config| config.treat_symbols_as_metadata_keys_with_true_values = true config.use_transactional_fixtures = false config.infer_base_class_for_anonymous_controllers = false1 config.filter_run_excluding :broken => true config.render_views Capybara.default_driver = :selenium Capybara.default_selector= :css Capybara.run_server = true Capybara.default_wait_time = 30 

好吧,我找到了问题的原因和解决方案。

原因 :我们使用响应式设计,显然travis使用小窗口大小打开移动设计,这就是为什么它找不到元素。

方案

 script: - xvfb-run --server-args="-screen 0 1024x768x24" bundle exec rspec spec/features/*.rb 

您基本上将窗口大小设置为更大的大小。