Set Chrome's language using Selenium ChromeDriver
Solution 1
You can do it by adding Chrome's command line switches "--lang".
Basically, all you need is starting ChromeDriver
with an ChromeOption argument --lang=es
, see API for details.
The following is a working example of C# code for how to start Chrome in Spanish using Selenium.
ChromeOptions options = new ChromeOptions();
options.addArguments("--lang=es");
ChromeDriver driver = new ChromeDriver(options);
Java code should be pretty much the same (untested). Remember, locale here is in the form language[-country] where language is the 2 letter code from ISO-639.
public WebDriver getDriver(String locale){
System.setProperty("webdriver.chrome.driver", "driver/chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("--lang=" + locale);
return new ChromeDriver(options);
}
public void initializeSelenium() throws Exception{
driver = getDriver("es"); // two letters to represent the locale, or two letters + country
}
Solution 2
For me, --lang didn't work. It seems to set the language of the first opened tab, all others chrome processes are started with --lang=en-US.
What did work is the following:
DesiredCapabilities jsCapabilities = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<>();
prefs.put("intl.accept_languages", language);
options.setExperimentalOption("prefs", prefs);
jsCapabilities.setCapability(ChromeOptions.CAPABILITY, options);
Solution 3
I had problems with Chrome using US date format (mm/dd/yyyy) instead of the GB dd/mm/yyyy format (even though I had set these in Chrome). Using:
options.addArguments("--lang=en-GB");
resolved this.
Solution 4
As of now (Jan 2020 - Chrome Version 79.0.3945.130) The C# in the accepted answer does not work.
The simplest approach that I can find to work in C# presently:
ChromeOptions options = new ChromeOptions();
options.AddUserProfilePreference("intl.accept_languages", language);
WebDriver driver = new ChromeDriver(chromeOptions);
Solution 5
I was trying the same and above listed nothing worked for me, at last I tried the below and it worked:
ChromeOptions chromeOptions = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("intl.accept_languages", "ja-jp,ja");
chromeOptions.setExperimentalOption("prefs", prefs);
WebDriver driver = new ChromeDriver(chromeOptions);
elcharrua
Updated on July 09, 2022Comments
-
elcharrua almost 2 years
I download ChromeDriver and by defaults the browser language is in English, I need to change it to Spanish, and I have been unable.
public WebDriver getDriver(String locale){ System.setProperty("webdriver.chrome.driver", "driver/chromedriver.exe"); return new ChromeDriver(); } public void initializeSelenium() throws Exception{ driver = getDriver("en-us") }