使用Selenium ChromeDriver设置Chrome的语言

时间:2013-09-05 20:20:47

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

我下载了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")
}

7 个答案:

答案 0 :(得分:16)

您可以通过添加Chrome的command line switches“ - lang”。

来实现

基本上,您只需使用ChromeOption参数ChromeDriver启动--lang=es,有关详细信息,请参阅API。

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

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

Java代码应该几乎相同(未经测试)。请记住,此处的语言环境采用语言[-country],其中language是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
}

答案 1 :(得分:8)

对我来说, - 郎没有用。它似乎设置了第一个打开的选项卡的语言,其他所有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);

答案 2 :(得分:3)

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

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

解决了这个问题。

答案 3 :(得分:1)

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

答案 4 :(得分:1)

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

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 才能获得新的 env 变量(LANG=C.UTF-8 到 es_ES.UTF-8)

答案 5 :(得分:0)

我正在尝试上面列出的相同内容没有任何对我有用,最后我尝试了下面的工作:

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 :(得分:0)

对于将硒与红宝石一起使用的人:

我是这样工作的:

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