Recently Updated - January 08, 2017
This post demonstrates how to set Chrome, Firefox and PhantomJS's User Agent using Selenium WebDriver C# and Ruby bindings.
Environment Tested: Mac OS Sierra, Ruby 2.3.1p112, Selenium 3.0.5, ChromDriver 2.26, GeckoDriver 0.13 Firefox 50.1, Chrome 55, PhantomJS 1.9.8
Example User Agent (ipad): Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10
Chrome C# var options = new ChromeOptions ();
options . AddArgument ( "--user-agent=Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25" );
IWebDriver driver = new ChromeDriver ( options );
Ruby require 'selenium-webdriver'
USER_AGENT = 'Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10;'
driver = Selenium :: WebDriver . for :chrome , :switches => %W[--user-agent= #{ USER_AGENT } ]
Firefox C# var profile = new FirefoxProfile ();
profile . SetPreference ( "general.useragent.override" , "Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10" );
IWebDriver driver = new FirefoxDriver ( profile );
Ruby require 'selenium-webdriver'
profile = Selenium :: WebDriver :: Firefox :: Profile . new
profile [ 'general.useragent.override' ] = 'Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10'
driver = Selenium :: WebDriver . for :firefox , :profile => profile
PhantomJS C# var options = new PhantomJSOptions ();
options . AddAdditionalCapability ( "phantomjs.page.settings.userAgent" , "Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10" );
IWebDriver driver = new PhantomJSDriver ( options );
Ruby require 'selenium-webdriver'
capabilities = Selenium :: WebDriver :: Remote :: Capabilities . phantomjs ( 'phantomjs.page.settings.userAgent' => 'Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10' )
driver = Selenium :: WebDriver . for :phantomjs , :desired_capabilities => capabilities
IE Sadly but as expected, IE doesn't allow Selenium WebDriver to override the User Agent natively. Quote from IE driver's developer Jim Evans:
The IE driver does not support changing the user agent, using capabilities or otherwise. Full stop.