I am trying to change the language of Selenium Webdriver Firefox from English to Spanish.
I have the following code in place:
def get_webdriver(attempts=3, timeout=60):
firefox_profile = webdriver.FirefoxProfile()
firefox_profile.set_preference("intl.accept_languages", "es-es")
desired_capabilities = getattr(
DesiredCapabilities, "FIREFOX").copy()
hub_url = urljoin('http://hub:4444', '/wd/hub')
driver = webdriver.Remote(
command_executor=hub_url, desired_capabilities=desired_capabilities,
browser_profile=firefox_profile)
return driver
However, the driver being returned is still in English and not in Spanish. What am I missing? How can I set the language to Spanish?
To make Firefox work with Python selenium, you need to install the geckodriver. The geckodriver driver will start the real firefox browser and supports Javascript. Take a look at the selenium firefox code. First import the webdriver, then make it start firefox.
Mozilla Firefox is one of the most widely used browsers in the world. It has enhanced features and is supported by a multitude of the latest testing tools and techniques. One such tool is Selenium.
To change the language for Firefox Browser exectued by Selenium do as follows:
English:
from selenium import webdriver
profile = webdriver.FirefoxProfile()
profile.set_preference('intl.accept_languages', 'en-US, en')
driver = webdriver.Firefox(firefox_profile=profile)
German:
from selenium import webdriver
profile = webdriver.FirefoxProfile()
profile.set_preference('intl.accept_languages', 'de-DE, de')
driver = webdriver.Firefox(firefox_profile=profile)
There is no need to import FirefoxProfile, because this method is linked to webdriver.
Here you'll find a full list of all country/language codes: https://de.wikipedia.org/wiki/Liste_der_ISO-639-1-Codes
So I figured out the answer:
def get_webdriver(attempts=3, timeout=60, locale='en-us'):
firefox_profile = webdriver.FirefoxProfile()
firefox_profile.set_preference("intl.accept_languages", locale)
firefox_profile.update_preferences()
desired_capabilities = getattr(
DesiredCapabilities, "FIREFOX").copy()
hub_url = urljoin('http://hub:4444', '/wd/hub')
driver = webdriver.Remote(
command_executor=hub_url, desired_capabilities=desired_capabilities,
browser_profile=firefox_profile)
return driver
So, whenever you call this function just be sure to pass the param of locale to whatever language you want.
Eg, for German:
get_webdriver(locale='de')
Enjoy!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With