有没有办法使用 Selenium Webdriver (firefox) 记录 http 请求/响应?
我想可以通过代理驱动网络流量并记录它,但也许有更简单的“内部”硒解决方案?
在#selenium 频道上问了这个问题:
你需要代理它来捕获请求
所以,看起来是为它设置代理的唯一方法。
不,WebDriver 没有任何方法来检查或修改浏览器和网站之间发生的 HTTP 流量。您已经从 Selenium IRC 频道(甚至可能来自 Selenium 提交者)获得的信息是正确的。代理是这里的正确方法。
现在是 2021 年,答案是:是。
你可以使用新的库: selenium-wire
selenium-wire
pip install selenium-wire
从改变
from selenium import webdriver
到
from seleniumwire import webdriver
之后driver.get(yourUrl)
,添加:
# Access requests via the `requests` attribute
for request in driver.requests:
if request.response:
print(
request.url,
request.response.status_code,
request.response.headers['Content-Type']
)
可以得到你的预期request
和response
。