keb*_*mix 2 ruby selenium rspec ruby-on-rails capybara
我使用的硒,水豚使用RSpec进行测试,我发现所有的测试在本地通过,但特拉维斯所有测试失败,每个规格此错误.
Capybara::ElementNotFound:
Run Code Online (Sandbox Code Playgroud)
我不确定这里有什么问题,这是.travis.yml上的specs runner
script:
- xvfb-run bundle exec rspec spec/features/*.rb
Run Code Online (Sandbox Code Playgroud)
对于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
Run Code Online (Sandbox Code Playgroud)
好吧,我找到了问题的原因和解决方案.
原因:我们使用响应式设计,显然travis使用小窗口大小打开了移动设计,这就是它找不到元素的原因.
方案:
script:
- xvfb-run --server-args="-screen 0 1024x768x24" bundle exec rspec spec/features/*.rb
Run Code Online (Sandbox Code Playgroud)
您基本上将窗口大小设置为更大的大小.
| 归档时间: |
|
| 查看次数: |
557 次 |
| 最近记录: |