Selenium WebDriver - 在linux上更改浏览器的语言

时间:2017-08-10 13:14:32

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

通过selenium以不同语言打开浏览器(谷歌浏览器)WebDriver在PC上运行时工作正常,如here所述。但是当在基于linux的系统或mac-os上进行尝试时,它根本不起作用,并且浏览器打开它的默认语言。我尝试使用不同的语言代码,例如“es_ES”或“es-ES”而不是“es”,但没有任何帮助。它是linux的不同语言代码,还是操作Web驱动程序而不使用“--lang”命令的不同方式?

感谢。

3 个答案:

答案 0 :(得分:0)

我还没有尝试过,但我认为您可以将Chrome设置更改为: -

设置 - > Lamguages - >添加语言。

在那里添加您的语言并尝试一下。如果需要,请删除其他语言。

对于IE,请参阅以下链接: -

http://www.reliply.org/info/internet/http-accept-lang.html

我还在您分享的同一链接上找到了代码。你试过吗?

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

来源: -

Set Chrome's language using Selenium ChromeDriver

答案 1 :(得分:0)

也许你还需要设置 prefs&gt; intl&gt; accept_language:en-GB

"desiredCapabilities": { "browserName": "chrome", "chromeOptions": { "args": ["--lang=en-GB"], "prefs": { "intl": { "accept_languages": "en-GB" } } } }

答案 2 :(得分:0)

正如您在 developer.chrome.com 所读到的,有一种系统相关的方式来设置 Chrome 的语言。在 Linux 上,需要一个环境变量。

我创建了一个像这样的 Bash 脚本:

#!/bin/sh

LANGUAGE="en" "/home/plap/projects/pdf-exporter/chromedriver" $*

然后我使用脚本的路径代替真正的 chromedriver 可执行文件的路径。

此外,由于我需要以编程方式切换语言,因此我编写了代码以在每种所需的新语言中以编程方式保存脚本。确实代码调用:

System.setProperty("webdriver.chrome.driver", executableFile.getAbsolutePath());

new ChromeDriver(options) 一起在一个同步块中......是的,这太可怕了!