相关疑难解决方法(0)

如何在 Selenium(使用 Python)中使用 Chrome DevTools 协议来捕获 HTTP 请求和响应?

我知道它Fetch Domain用于此目的,但我不知道如何准确地实现它。在 Selenium python 中,我使用以下代码来启用requestPaused事件的发出。

driver.execute_cdp_cmd("Fetch.enable",{})
driver.get('https://www.example.com')
Run Code Online (Sandbox Code Playgroud)

但我不知道如何处理requestPaused事件(我需要调用 1fulfillRequestcontinueRequest/ continueWithAuth)。结果,我的程序停止工作。如果有人能为我提供一个例子来帮助我理解它是如何工作的,我真的很感激。

selenium google-chrome-devtools fetch-api chrome-devtools-protocol selenium4

10
推荐指数
1
解决办法
1万
查看次数

如何在 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)
Run Code Online (Sandbox Code Playgroud)

结果:

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
Run Code Online (Sandbox Code Playgroud)

所以,我期望标题host:test.local但发现Host: localhost:888

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

python selenium selenium-chromedriver

8
推荐指数
1
解决办法
2万
查看次数