You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Selenium仅获取当前URL对应的请求头?

仅获取当前页面URL对应请求头的解决方案

你当前的代码会遍历SeleniumWire捕获的所有请求并输出请求头,要只获取driver.current_url对应的请求头,可以通过匹配请求的url属性与当前页面URL来实现,具体修改如下:

修改后的完整代码

from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
from seleniumwire import webdriver
import time

chrome_options = Options()
chrome_options.add_argument("--incognito")
chrome_options.add_argument("--window-size=1920x1080")
driver = webdriver.Chrome(chrome_options=chrome_options)

url = "https://premierrem.managebuilding.com/manager/public/authentication/login"
driver.get(url)
time.sleep(5)

# 登录操作
find_email_field = driver.find_element_by_id("emailAddressInput")
find_email_field.send_keys("abc@gmail.com")
find_password_field = driver.find_element_by_id("passwordInput")
find_password_field.send_keys("abc@123")
time.sleep(5)
driver.find_element_by_xpath('//button[contains(text(), "Sign in")]').click()
time.sleep(20)

# 进入目标页面
driver.find_element_by_link_text("Maintenance").click()
driver.find_element_by_id("lnk_Workorders").click()

current_url = driver.current_url
print(f"当前页面URL:{current_url}")

# 过滤出当前URL对应的请求头
for request in driver.requests:
    # 精确匹配请求URL与当前页面URL
    if request.url == current_url:
        print("当前页面请求头:")
        print(request.headers)
        break  # 找到目标请求后退出循环,避免多余遍历

关键说明

  1. SeleniumWire捕获的每个request对象都包含url属性,直接与driver.current_url做精确匹配即可定位到当前页面的加载请求。
  2. 添加break是因为当前页面的加载请求通常只会出现一次,找到后无需继续遍历所有请求,提升效率。
  3. 如果遇到精确匹配失败的情况(比如存在URL参数动态变化、重定向等场景),可以改用包含匹配:if current_url in request.url,但这种方式可能会匹配到相关的资源请求,需要根据实际情况调整。

内容的提问来源于stack exchange,提问作者Ajay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 09:15:59