如何在python selenium chrome webdriver中设置标头

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在python selenium chrome webdriver中设置标头相关的知识,希望对你有一定的参考价值。

我无法找到如何在selenium chrome webdriver(python)中设置请求标头。我需要设置“主机”标头。我试过了:

from selenium import webdriver
from pyvirtualdisplay import Display
from selenium.webdriver import DesiredCapabilities


url = 'http://localhost:888/test'

display = Display(visible=0, size=(800, 800))
display.start()

desired_capabilities = DesiredCapabilities.CHROME.copy()
desired_capabilities['chrome.page.customHeaders.host'] = 'test.local'

driver = webdriver.Chrome('/tmp/chromedriver',
                          desired_capabilities=desired_capabilities)

driver.get(url)

结果:

GET /test HTTP/1.1
Host: localhost:888
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/53.0.2785.143 Chrome/53.0.2785.143 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8

所以,我期待头host:test.local但发现Host: localhost:888

我做错了什么?我无法找到如何使用Chrome webdriver设置标头:(

答案

请求标头中的Host是服务器(目标)的名称,由driver.get(url)设置。

以上是关于如何在python selenium chrome webdriver中设置标头的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中使用 Selenium 打开 chrome 开发者控制台?

Python+Selenium与Chrome如何进行完美结合

如何在 python 中使用现有的 google chrome 配置文件和 selenium chrome webdriver?

如何在 selenium webdriver(python)中禁用 chrome 的“保存密码”弹出窗口

如何在 python 中的 selenium webdriver 中禁用 chrome 通知弹出窗口

如何在 Selenium Webdriver Python 3 中使用 Chrome 配置文件