【问题标题】:capybara poltergeist - override user agentcapybara poltergeist - 覆盖用户代理
【发布时间】:2012-11-23 09:53:33
【问题描述】:

有人知道我如何将 capybara poltergeist 的用户代理覆盖到移动端进行测试吗?

我发现了一些关于为 selenium webdriver 配置的东西: http://blog.plataformatec.com.br/2011/03/configuring-user-agents-with-capybara-selenium-webdriver/

这在 capybara poltergeist 中怎么可能?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 rubygems gem


    【解决方案1】:

    在 poltergeist github 页面上查看该链接: https://github.com/teampoltergeist/poltergeist#manipulating-request-headers

    【讨论】:

      【解决方案2】:

      如果您不想在每个规范上都设置用户代理,请在您的 spec_helper.rb 中尝试此操作

      Capybara.register_driver :poltergeist_iphone_debug do |app|
        ghost_busters = Capybara::Poltergeist::Driver.new(app, inspector: true)
        ghost_busters.headers = { 'User-Agent' => 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9A334 Safari/7534.48.3' }
        ghost_busters
      end
      
      Capybara.default_driver = :rack_test
      Capybara.javascript_driver = :poltergeist
      
      RSpec.configure do |config|
      
        config.treat_symbols_as_metadata_keys_with_true_values = true
        config.before (:each) do |example_method|
          example = example_method.example ## RSpec2 | For RSpec3: example = example_method
      
          if example.metadata[:mobile]
            Capybara.current_driver = :poltergeist_iphone_debug
          end
      
        end
      end
      

      然后在您的功能规范中,这样做:

      require 'spec_helper'
      
      describe 'Home' do
        describe 'GET /' do
      
          # Default request desktop
          it 'does not have mobile menu' do
            visit root_path
            expect(page).to_not have_selector('.mobile-menu')
          end
      
          # Override request mobile
          it 'has mobile menu', :mobile do
            visit root_path
            expect(page).to have_selector('.mobile-menu')
          end
        end
      end
      

      【讨论】:

        猜你喜欢
        • 2017-03-08
        • 1970-01-01
        • 2012-12-10
        • 2016-07-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-05
        • 2022-06-13
        相关资源
        最近更新 更多