使用Selenium(Python)设置Chrome Headless的Accepted-Lang

6

透过ChromeOptions,使用Accepted-Lang标题设置可以与普通Chrome正常运作。

options.add_experimental_option('prefs', {'intl.accept_languages': 'en,en_US'})

我正在尝试切换到新的无界面Chrome,在validator.w3.org检查头信息时,此选项似乎没有效果。是否有其他方式可以更改这些选项?是否有人知道是否支持这个功能?

使用Chrome 60、Chromedriver 2.30、Selenium 3.4.3、Python 3.6.1在MacOS上。

使用以下代码:

from selenium import webdriver

print('Start')

options = webdriver.ChromeOptions()
options.add_argument('headless')
options.add_experimental_option('prefs', {'intl.accept_languages':'en,en_US'})
driver = webdriver.Chrome(chrome_options=options)

driver.get('http://validator.w3.org/i18n-checker/check?uri=google.com#validate-by-uri+')
print('Loaded')

# Check headers in output.html file. Search for 'Request headers'
html_source = driver.page_source
file = open('output.html', 'w')
file.write(html_source)
file.close

driver.implicitly_wait(5)

# Or check headers with select
# WARNING: This fails with 'headless' chrome option!
element = driver.find_element_by_xpath("//code[@class='headers_accept_language_0']").get_attribute('textContent')
print('Element:', element)

driver.close()

print('Finish')

谢谢!


你找到答案了吗?有同样的问题吗? - Paweł Lula
很遗憾,目前还没有解决方案。
  • 谷歌开发者博客上有一个人问了同样的问题,但没有得到答案:https://plus.google.com/114670839725657997273/posts/aVrAivf9jXo -
我目前正在使用一个默认设置为英语的Linode服务器,这样我就能够规避这个问题(需要英文标题)。如果您找到更好的解决方法,请留下评论,谢谢。
- Jim B
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接