使用Selenium ChromeDriver设置Chrome的语言

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

答案 1

您可以通过添加Chrome的命令行开关“--lang”来做到这一点。

基本上,您所需要的只是从ChromeOption参数开始,有关详细信息,请参阅API。ChromeDriver--lang=es

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

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

Java代码应该几乎相同(未经测试)。请记住,此处的区域设置采用语言[-国家]的形式,其中语言是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
}

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

推荐