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

如何使用Selenium driver保存的已登录账号身份发送POST请求

Selenium复用已登录身份发送POST请求的实现方法

两种常用的可行实现方案如下:

方案1:直接通过Selenium执行JavaScript发送请求

该方案无需额外提取身份凭证,直接复用当前浏览器上下文的登录态,操作最简便,适合不需要脱离Selenium环境的场景。

  • 注意:需保证当前Selenium打开的页面和目标接口属于同一域名,避免跨域拦截。
    代码示例:
from selenium import webdriver

# 此处为你已经完成登录操作的driver实例
driver = webdriver.Chrome()

# 定义请求参数
currency = {
  "type": "to-bits",
  "amount": "1",
}

# 执行JS调用fetch发送POST请求,自动携带当前站点的所有身份凭证
response = driver.execute_script("""
  return fetch('替换为你的目标接口地址', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(arguments[0])
  }).then(res => res.json())
""", currency)

# 输出接口返回结果
print(response)

方案2:导出Selenium Cookie给requests库发送请求

该方案适合需要脱离Selenium环境发送请求的场景,需要提取Selenium中存储的登录态凭证传给requests。

  • 注意:如果站点认证信息除Cookie外还存储在localStorage或者需要自定义请求头,需要额外从Selenium中提取对应值添加到requests的请求配置中。
    代码示例:
import requests
from selenium import webdriver

# 此处为你已经完成登录操作的driver实例
driver = webdriver.Chrome()

# 1. 提取Selenium中当前站点的所有Cookie
cookies = driver.get_cookies()

# 2. 初始化requests会话,导入提取到的Cookie
req_session = requests.Session()
for ck in cookies:
    req_session.cookies.set(ck['name'], ck['value'])

# 定义请求参数
currency = {
  "type": "to-bits",
  "amount": "1",
}

# 3. 发送POST请求
resp = req_session.post(
    "替换为你的目标接口地址",
    json = currency
)

# 输出接口返回结果
print(resp.json())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 16:06:02