8

我正在尝试让我的远程 chrome 驱动程序以德语而不是英语请求页面。按照chromedriver 文档chrome 首选项列表,我尝试将其设置为:

    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
}

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

4

2 回答 2

5

(编辑)长话短说:

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

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

    另一种方法可能是创建具有所需语言设置的用户配置文件,并使用 ChromeOption 设置(命令行)选项以使用此配置文件,如chromedriver 功能 wiki 页面所述。

于 2012-07-07T13:36:00.477 回答
0

Pyhon 示例

注意:我使用“en,en_US”接受的语言对其进行测试,但我不明白为什么只要系统上提供语言环境,它就不能与 de_DE 一起使用。

这项工作与硒

from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options
from splinter.driver.webdriver import BaseWebDriver, WebDriverElement

options = Options()
options.add_experimental_option('prefs', {'intl.accept_languages': 'de_DE'})

browser = BaseWebDriver()
browser.driver = Chrome(chrome_options=options)

browser.visit('http://example.com')

使用 splinter 有 2 个选项:

仅分裂 API

from splinter import Browser
from splinter.driver.webdriver.chrome import Options

options = Options()
options.add_experimental_option('prefs', {'intl.accept_languages': 'de_DE'})

browser = Browser('chrome', options=options)

browser.visit('http://example.com')

分裂和硒 API

from splinter import Browser
from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_experimental_option('prefs', {'intl.accept_languages': 'de_DE'})

browser = Browser('chrome', options=options)

browser.visit('http://example.com')
于 2017-04-27T17:07:35.097 回答