Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Custom profile for Chrome

Environment: Mac OS X 10.8.3, Ruby 2.0.0p0, selenium-webdriver 2.32.1, ChromeDriver 26.0.1383.0.

I want to change default browser language. I am testing if the site detects the browser language correctly and displays the pages in the language.

I was able to set Firefox language to German:

require "selenium-webdriver"

profile = Selenium::WebDriver::Firefox::Profile.new 
profile["intl.accept_languages"] = "de"

caps = Selenium::WebDriver::Remote::Capabilities.firefox(firefox_profile: profile) 
caps.platform = "Linux" 
caps.version = 20

driver = Selenium::WebDriver.for( 
:remote, 
url: "http://USERNAME:[email protected]:80/wd/hub", 
desired_capabilities: caps)

driver.navigate.to "http://sandbox.translatewiki.net/"

I want to do the same using Chrome (and other browsers, if possible).

I have tried several things trying to open the page in German in Chrome, but every time the page is displayed in English, instead of in German.

require "selenium-webdriver"

profile = Selenium::WebDriver::Chrome::Profile.new 
profile["intl.accept_languages"] = "de"

caps = Selenium::WebDriver::Remote::Capabilities.chrome(firefox_profile: profile) 
caps.platform = "Linux" 
caps.version = ""

driver = Selenium::WebDriver.for( 
:remote, 
url: "http://USERNAME:[email protected]:80/wd/hub", 
desired_capabilities: caps)

driver.navigate.to "http://sandbox.translatewiki.net/"

If I change firefox_profile: profile to profile: profile or chrome_profile: profile, the page opens in English (instead of in German) every time.

As far as I can see in the API docs, only :firefox_profile is supported.

I was able to do it on a local machine, but not when using Sauce Labs.

like image 364
Željko Filipin Avatar asked Apr 25 '13 15:04

Željko Filipin


1 Answers

This should work:

require "selenium-webdriver"

profile = Selenium::WebDriver::Chrome::Profile.new 
profile["intl.accept_languages"] = "de"

caps = Selenium::WebDriver::Remote::Capabilities.chrome(
  platform: "Linux", 
  version: "", 
  'chrome.profile' => profile.as_json['zip']
)

Selenium::WebDriver.for(:remote, 
  url: "http://[email protected]:80/wd/hub", 
  desired_capabilities: caps
)
like image 61
jarib Avatar answered Sep 29 '22 03:09

jarib