The User-Agent
HTTP header identifies the client and is sent by "regular" browsers, search engine crawlers, or other web client software.
In Rack::Test
, you can set your user agent like this on Capybara:
Given /^my user agent is "(.+)"$/ do |agent|
page.driver.browser.header('User-Agent', agent)
# Or, for older Capybaras:
# page.driver.header('User-Agent', agent)
end
For Selenium tests with Firefox, it seems you can set the general.useragent.override
profile setting to your preferred value.
See StackOverflow
Show archive.org snapshot
for more information on that.
When you are using Chrome, you can spawn a new Chrome using the --user-agent
command line switch.
In controller specs, you can just modify the Rack environment before making your request:
request.env['HTTP_USER_AGENT'] = 'Googlebot'
get :index
Request specs have no request
object. Instead, specify headers when performing the request:
get :index, headers: { HTTP_USER_AGENT: 'Googlebot' }