Set Chrome's language using Selenium ChromeDriver Set Chrome's language using Selenium ChromeDriver google-chrome google-chrome

Set Chrome's language using Selenium ChromeDriver


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}


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);


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.