Change language on Firefox with Selenium Python

谁说我不能喝 提交于 2019-12-12 14:02:01

问题


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?


回答1:


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!




回答2:


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




回答3:


I do not know much about Selenium, but from my research it looks like you may be using the wrong language keyword. From this link

https://groups.google.com/forum/#!topic/nightwatchjs/qwtLPIAJa_c

it looks like it should be QASpanish instead of es-es. Have you checked to make sure you are using the correct keyword?



来源:https://stackoverflow.com/questions/32728302/change-language-on-firefox-with-selenium-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!