5

通过 ChromeOptions 设置 Accepted-Lang 标头适用于常规 Chrome options.add_experimental_option('prefs', {'intl.accept_languages': 'en,en_US'})

我正在尝试切换到新的无头 Chrome,但显然在检查 validator.w3.org 上的标头时此选项无效。我可以用另一种方式改变它们吗?有人知道是否会支持此功能吗?

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

使用此代码:

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')

谢谢!

4

0 回答 0