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

如何使用Python版Selenium获取Chrome控制台返回的列表数据?

解决方案

不要通过浏览器日志获取JS执行结果,直接用Selenium的execute_script()方法就能拿到JS返回的列表,这才是正确的做法:

核心思路

driver.execute_script()方法本身就会返回JavaScript代码的执行结果,Selenium会自动把JS的数组、对象转换成对应的Python列表、字典,不需要通过日志绕弯子。

示例代码

假设你的JavaScript代码是返回两个People列表的逻辑,直接在execute_script()中执行并接收返回值:

# 执行JS代码,获取返回的两个列表
list1, list2 = driver.execute_script("""
    // 这里写你的JS逻辑,最后返回两个列表组成的数组
    const peopleList1 = [/* 第一个People列表数据 */];
    const peopleList2 = [/* 第二个People列表数据 */];
    return [peopleList1, peopleList2];
""")

# 现在可以直接在Python中处理这两个列表
print("第一个People列表:", list1)
print("第二个People列表:", list2)

# 遍历处理每个People对象(假设每个People是包含属性的字典)
for person in list1:
    print(f"姓名: {person.get('name')}, 年龄: {person.get('age')}")

为什么之前的方法无效?

你之前用日志的思路是错误的:

  • driver.get_log('browser')是用来捕获浏览器的控制台日志(比如console.log()输出、页面报错信息),不是用来获取JS函数的返回值。
  • 配置DesiredCapabilities的日志偏好,也只是控制日志的捕获范围,同样无法直接拿到JS代码的返回结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 11:47:08