【问题标题】:Set Chrome's language using Selenium ChromeDriver使用 Selenium ChromeDriver 设置 Chrome 的语言
【发布时间】:2013-09-09 19:29:13
【问题描述】:

我下载了ChromeDriver,默认浏览器语言是英文的,我需要改成西班牙文,一直没办法。

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")
}

【问题讨论】:

    标签: java google-chrome selenium webdriver selenium-webdriver


    【解决方案1】:

    你可以通过添加Chrome的command line switches“--lang”来实现。

    基本上,您只需要以ChromeOption 参数--lang=es 开头ChromeDriver,详情请参阅API。

    以下是如何使用 Selenium 以西班牙语启动 Chrome 的 C# 代码的工作示例。

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

    Java 代码应该几乎相同(未经测试)。请记住,此处的语言环境采用语言 [-country] 形式,其中语言是 ISO-639 中的 2 个字母代码。

    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
    }
    

    【讨论】:

    • 有没有人用 Appium 在移动设备上测试 chrome 的解决方案?
    【解决方案2】:

    对我来说,--lang 不起作用。似乎设置了第一个打开的选项卡的语言,所有其他 chrome 进程都以 --lang=en-US 开头。

    以下是有效的:

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

    【讨论】:

    • 这对我有用,使用reliply.org/tools/requestheaders.php 进行验证。
    • 对我来说,它也可以在没有 DesiredCapabilities(第一行和最后一行)的情况下工作。
    【解决方案3】:

    我在使用美国日期格式 (mm/dd/yyyy) 而不是 GB dd/mm/yyyy 格式的 Chrome 时遇到问题(即使我在 Chrome 中设置了这些格式)。使用:

    options.addArguments("--lang=en-GB");
    

    解决了这个问题。

    【讨论】:

    • 这对我有用,而接受的解决方案却没有(假设英语为“--lang=en”)。似乎它不适用于语言的两个字母代码,但必须添加特定的“拼写”,例如“GB”。编辑:在3.141.0 上使用 python 变体
    【解决方案4】:

    截至目前(2020 年 1 月 - Chrome 版本 79.0.3945.130)已接受答案中的 C# 不起作用。

    目前我能找到在 C# 中工作的最简单方法:

    ChromeOptions options = new ChromeOptions();
    options.AddUserProfilePreference("intl.accept_languages", language);
    WebDriver driver = new ChromeDriver(chromeOptions);
    

    【讨论】:

      【解决方案5】:

      我也在尝试同样的方法,上面列出的对我没有任何作用,最后我尝试了下面的方法,它成功了:

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

      【讨论】:

        【解决方案6】:

        对我来说--lang 也没有用。我想用特定语言(en-US 而不是 en-GB)执行 Facebook 登录测试,我发现某些页面(如 Facebook)根据系统环境变量 LANG 设置界面......所以如果上面的答案没有不行,尝试更改LANG 环境变量。在 Linux 上测试。

        【讨论】:

        • en-US 和 en-GB 不适用于我。谁能帮帮我?
        【解决方案7】:

        我遇到了同样的问题。我试图解决的问题包括

        chromeOptions = Options()
        chromeOptions.add_argument('--lang=es')
        

        但它不起作用(我发现没有必要)。

        当我更改语言环境时它可以工作:

        locale -a
        sudo apt-get install language-pack-es
        sudo dpkg-reconfigure locales
        

        它是 es_ES.UTF-8 UTF-8 用于西班牙语。最后,您必须启动一个新的 shell 以获取新的环境变量(LANG=C.UTF-8 到 es_ES.UTF-8)

        【讨论】:

        • 非常感谢!我有一个多语言网站,我需要为我获取俄语内容。我将 --lang 参数传递给 Chrome,但该网站仍然提供英文内容版本。只有在设置了语言环境之后,一切才能正常工作。
        【解决方案8】:

        对于将 Selenium 与 ruby​​ 一起使用的人:

        我是这样设计的:

        prefs_hash = {
               'credentials_enable_service' => false,
               'profile' => {
                   'password_manager_enabled' => false,
               },
               'intl.accept_languages' => 'fr-FR', // <- here
            }
        
        // [...]
        
        browser = Watir::Browser.new :chrome, :prefs => prefs_hash, switches: switches, desired_capabilities: caps
        
        

        【讨论】:

          猜你喜欢
          • 2021-12-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-09-23
          • 2023-01-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多