我正在尝试让我的远程Chrome驱动程序以德语而不是英语请求页面。在chromedriver documentation和list 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
}
但它仍然要求英文页面,这也可以通过打开首选项中的内容设置来看到。我做错了什么?
答案 0 :(得分:3)
(编辑)长话短说:
intl.accept_languages
是操作页面请求的语言的首选项键。使用(较新的和首选的) ChromeOptions
机制设置首选项的功能(否则,如果您或您的语言绑定设置了任何ChromeOptions,它将无效,请参阅问题104&amp; 95)。
ChromeOptions对设置首选项的支持尚未完全实现。不幸的是,您必须使用我的comment 6 to Issue 95
中的脏解决方法替代可能是创建具有所需语言设置的用户个人资料,并使用ChromeOption设置(命令行)选项以使用此个人资料,如chromedriver capabilities wiki page所述。
答案 1 :(得分:0)
Pyhon例子
注意:我用&#34; en,en_US&#34;进行测试已接受的语言,但我不明白为什么只要系统上有语言环境,它就不能与de_DE一起使用。
这项工作与selenium
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有两个选项:
仅限Splinter 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')
Splinter和selenium 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')