通过selenium以不同语言打开浏览器(谷歌浏览器)WebDriver在PC上运行时工作正常,如here所述。但是当在基于linux的系统或mac-os上进行尝试时,它根本不起作用,并且浏览器打开它的默认语言。我尝试使用不同的语言代码,例如“es_ES”或“es-ES”而不是“es”,但没有任何帮助。它是linux的不同语言代码,还是操作Web驱动程序而不使用“--lang”命令的不同方式?
感谢。
答案 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);
来源: -
答案 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)
一起在一个同步块中......是的,这太可怕了!