首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >水豚poltergeist覆盖用户代理

水豚poltergeist覆盖用户代理
EN

Stack Overflow用户
提问于 2012-11-23 17:53:34
回答 2查看 5.3K关注 0票数 5

有人知道如何将水豚的用户代理重写为移动代理进行测试吗?

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

在水豚幽灵中这是怎么可能的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-23 18:02:16

票数 5
EN

Stack Overflow用户

发布于 2014-11-07 07:49:27

代码语言:javascript
复制
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

然后在你的特性规范中,只需这样做:

代码语言:javascript
复制
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
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13526577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档