ruby-on-rails - Capybara::ElementNotFound 的所有规范仅在 Travis 上

标签 ruby-on-rails ruby selenium rspec capybara

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

Capybara::ElementNotFound:

我不确定这里出了什么问题,这是 .travis.yml 上的规范运行器

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

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

关于ruby-on-rails - Capybara::ElementNotFound 的所有规范仅在 Travis 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20713471/

相关文章:

ruby - 抢救 Selenium Webdriver 中的 ScriptError?

python - 不使用 WebDriverWait 我的代码返回 : element click intercepted/with WebDriverWait returns 'NoneType' object is not iterable

perl - 如何使用 perl 为 firefox 添加 extra_capability 来测试 selenium?

mysql - 无法在 Rails 3.1.11 的事件记录中查询 "group"

ruby-on-rails - 使用 railsInstaller 安装的 Ruby on rails windows 无法安装 gems/bundles

ruby - 在 Ruby 中通过 instance_eval 调用 block 时,动态添加的访问器分配不起作用

ruby - 为退出结束的错误情况编写Rspec测试

ruby-on-rails - Ruby on Rails 最稳定( headless 痛)的开发环境?

ruby-on-rails - ActionController 回调过滤器链是否一致?

ruby - 如何只允许一个类访问另一个类的方法?