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

Selenium执行execute_script调用fetch报NameError的解决办法

修复Selenium执行fetch请求的NameError问题

错误根源

你当前的代码把浏览器端的JavaScript fetch 逻辑直接当成Python代码执行了,Python解释器无法识别fetch这个浏览器专属的API,因此抛出NameError: name 'fetch' is not defined。

修复方法

核心是把fetch请求的代码作为完整的JavaScript字符串传给driver.execute_script(),而不是在Python环境中直接写fetch代码。

修复后的完整代码

driver.get(URL1)
driver.get('URL')

# 使用Python三引号包裹JS代码,避免引号转义冲突
fetch_js = """
fetch("URL", {
  "headers": {
    "accept": "application/json, text/javascript, */*; q=0.01",
    "accept-language": "en-GB,en-US;q=0.9,en;q=0.8",
    "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
    "sec-ch-device-memory": "8",
    "sec-ch-ua": "\"Google Chrome\";v=\"107\", \"Chromium\";v=\"107\", \"Not=A?Brand\";v=\"24\"",
    "sec-ch-ua-arch": "\"x86\"",
    "sec-ch-ua-full-version-list": "\"Google Chrome\";v=\"107.0.5304.88\", \"Chromium\";v=\"107.0.5304.88\", \"Not=A?Brand\";v=\"24.0.0.0\"",
    "sec-ch-ua-mobile": "?0",
    "sec-ch-ua-model": "",
    "sec-ch-ua-platform": "\"Windows\"",
    "sec-fetch-dest": "empty",
    "sec-fetch-mode": "cors",
    "sec-fetch-site": "same-origin",
    "x-esro-af": "s9TeAPYWl4s=",
    "x-requested-with": "XMLHttpRequest"
  },
  "referrer": "URL",
  "referrerPolicy": "strict-origin-when-cross-origin",
  "body": "URL CONTENT",
  "method": "POST",
  "mode": "cors",
  "credentials": "include"
});
"""

# 执行JavaScript代码
driver.execute_script(fetch_js)

进阶:获取fetch返回结果

如果需要拿到请求的响应数据,可以在JS代码中添加return和Promise处理,Python端接收返回值:

response_data = driver.execute_script("""
return fetch("URL", {
  // 这里是你的请求配置
})
.then(res => res.json()); // 将响应转为JSON格式返回
""")

print(response_data)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 05:15:30