我正在尝试让我的远程chrome驱动程序以德语而不是英语来请求页面。按照chromedriver documentationlist of chrome preferences,我尝试将其设置如下:

    capabilities.setCapability(ChromeOptions.CAPABILITY, getChromeOptions());
    Map<String, String> chromePrefs = new HashMap<String,String>();
    chromePrefs.put("settings.language.preferred_languages", "de-DE,de");
    capabilities.setCapability("chrome.prefs", chromePrefs);

而且我可以看到它从日志文件到达了chromedriver:
[0.453][FINE]:      Initializing session with capabilities {
   "browserName": "chrome",
   "chrome.prefs": {
      "settings.language.preferred_languages": "de-DE,de"
   },
   "chromeOptions": {
      "args": [ "--ignore-certificate-errors" ],
      "extensions": [  ]
   },
   "platform": "ANY",
   "version": null
}

但是它仍然需要英文页面,这也可以通过在首选项中打开内容设置来看到。我究竟做错了什么?

最佳答案

长话短说:

  • intl.accept_languages 是用于控制页面要求的语言的首选项键。
  • 使用(新的和首选的) ChromeOptions 机制设置首选项的功能(否则,如果您或您的语言绑定(bind)设置了任何ChromeOption,则该功能将不起作用,请参阅问题10495)。

    ChromeOptions对设置首选项的支持尚未完全实现。因此,不幸的是,您必须使用我的comment 6 to Issue 95中的肮脏的解决方法

    替代可能是使用所需的语言设置创建用户个人资料,然后使用ChromeOption设置(命令行)选项以使用此个人资料,如chromedriver capabilities wiki page所述。
  • 10-08 09:41