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

如何在Python版Selenium中读取浏览器Session Storage存储值

问题根因

执行JS读取sessionStorage返回0的常见原因有两个:

  • 读取时机过早:页面自身的JS逻辑还没完成向sessionStorage写入数据的操作,你就已经执行了读取脚本
  • 作用域指向错误:部分浏览器上下文下直接调用sessionStorage不会默认绑定到顶层window对象,导致读取的是空的作用域存储

解决方案

按以下步骤编写Selenium脚本即可正常读取:

  1. 导航到目标站点后先等待页面完全加载,确保页面自身的业务逻辑已经执行完毕
  2. 显式指定window.sessionStorage读取存储内容

完整Python示例代码

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import time

# 初始化驱动
driver = webdriver.Chrome()
# 导航到Google首页
driver.get("https://www.google.com")
# 显式等待搜索框加载完成,确认页面核心逻辑已执行
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.NAME, "q")))
# 可选:额外等待1-2秒,确保页面异步逻辑完成写入sessionStorage
time.sleep(1)

# 读取sessionStorage总长度
storage_len = driver.execute_script("return window.sessionStorage.length")
print(f"Session Storage 总键数:{storage_len}")

# 读取所有键值对
all_storage = driver.execute_script("""
let result = {};
for (let i = 0; i < window.sessionStorage.length; i++) {
    const key = window.sessionStorage.key(i);
    result[key] = window.sessionStorage.getItem(key);
}
return result;
""")

# 输出所有内容
for key, value in all_storage.items():
    print(f"\n键:{key}")
    print(f"值:{value}")

driver.quit()

补充说明

如果仍然读取不到内容,可以检查当前是否切换到了非顶层的iframe上下文,如果是需要先切回default_content再执行读取脚本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:57:01