【问题标题】:Selenium change language browser Chrome / FirefoxSelenium 更改语言浏览器 Chrome / Firefox
【发布时间】:2016-01-06 02:32:18
【问题描述】:

我正在尝试使用 Selenium 测试我的网站,但我无法更改浏览器的语言。我尝试使用 Firefox,也更改了配置文件,但它不起作用。

很遗憾,因为我的大部分内容都在改变语言。

这是我的 Python 代码:

@classmethod
def setUpClass(cls):
    super(SeleniumTestCase, cls).setUpClass()
    options = Options()
    options.add_argument('--lang=en')
    cls.selenium = WebDriver(chrome_options=options)

所以通常我会更改语言但没有任何反应......

只是为了澄清。我已经检查了堆栈溢出,如果我发布这个问题,那真的是因为我尝试了我看到的大多数解决方案。

【问题讨论】:

标签: python selenium testing


【解决方案1】:

我有这个java代码,请用python修改它

使用火狐浏览器:

FirefoxProfile profile = new FirefoxProfile();
//setting the locale french : ‘fr’
profile.setPreference(“intl.accept_languages”,”fr”);
driver = new FirefoxDriver(profile);
driver.get(“http://google.co.in);

使用 Chrome 浏览器:

System.setProperty(“webdriver.chrome.driver”,”D:/DollarArchive/chromedriver.exe”);
ChromeOptions options = new ChromeOptions();
options.addArguments(“–lang= sl”);
ChromeDriver driver = new ChromeDriver(options);
driver.get(“http://google.co.in);

在 python 中设置如下内容

火狐

driver.set_preference(“intl.accept_languages”,”fr”)

对于 Chrome

options.add_argument(“–lang= sl”)

希望对你有帮助:)

【讨论】:

  • thx Shubham,但我看到了你的帖子,并且这段代码是从你的帖子中翻译成 python 的:D 问题是它仍然不起作用......
  • @DaschPyth,你找到解决方案了吗?
【解决方案2】:

答案已在最近的一篇帖子中找到:
Change language on Firefox with Selenium Python

代码如下:

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

【讨论】:

    【解决方案3】:

    此代码适用于在本地机器上运行浏览器的最简单用例。

    对于 Firefox:

    from selenium import webdriver
    
    browser_locale = 'fr'
    gecko_driver_path = 'geckodriver64.exe'
    
    profile = webdriver.FirefoxProfile()
    profile.set_preference('intl.accept_languages', browser_locale)
    
    browser = webdriver.Firefox(executable_path=gecko_driver_path,
                                firefox_profile=profile)
    browser.get('https://google.com/')
    

    对于 Chrome:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    browser_locale = 'fr'
    chrome_driver_path = 'chromedriver.exe'
    
    options = Options()
    options.add_argument("--lang={}".format(browser_locale))
    
    browser = webdriver.Chrome(executable_path=chrome_driver_path,
                               chrome_options=options)
    browser.get('https://google.com/')
    

    【讨论】:

      【解决方案4】:

      火狐 JAVA

      将语言改为英文的Java代码:

      FirefoxProfile profile = new FirefoxProfile();
      profile.setPreference("intl.accept_languages", "en-GB");
      FirefoxOptions options = new FirefoxOptions();
      options.setProfile(profile);
      driver = new FirefoxDriver(options);
      

      JAVA

      将语言改为英文的Java代码:

      ChromeOptions options = new ChromeOptions();
      options.addArguments("lang=en-GB");
      driver = new ChromeDriver(options);
      

      火狐 Python

      options = Options()
      profile = webdriver.FirefoxProfile()
      profile.set_preference('intl.accept_languages', 'en-GB')
      browser = webdriver.Firefox(options=options,firefox_profile=profile)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-10-30
        • 2018-10-30
        • 2018-01-18
        • 2016-09-10
        • 1970-01-01
        • 2017-06-15
        • 1970-01-01
        相关资源
        最近更新 更多