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

Chrome DevTools Protocol:能否将Runtime.RemoteObject传入Runtime.evaluate执行脚本?

Chrome DevTools Protocol(CDP)传递RemoteObject到Runtime.evaluate的实现方法

可以实现,但你提供的示例代码参数传递方式有误,需要按CDP规范调整参数格式:

核心要点

通过DOM.resolveNode获取的Runtime.RemoteObject,需要通过Runtime.evaluate的args参数传入,而非直接作为第二个参数传递。CDP会自动将args数组中的RemoteObject映射到脚本的arguments变量中。

修正后的Python示例代码

chrome: PyChromeDevTools.ChromeInterface
node_id = "<node-id-of-an-element>"

# 解析nodeId为RemoteObject
resolve_result = chrome.DOM.resolveNode(nodeId=node_id)
remote_object = resolve_result['result']['object']

# 调用Runtime.evaluate执行点击操作,正确传入RemoteObject
chrome.Runtime.evaluate(
    expression="arguments[0].click()",
    args=[remote_object],
    returnByValue=False  # 无需返回执行结果时可设置为False
)

关键细节说明

  • DOM.resolveNode的返回结构中,result.object才是包含objectId的完整RemoteObject,这是CDP识别远程元素的核心标识
  • args参数必须是数组类型,每个元素对应脚本中arguments数组的下标(比如args[0]对应arguments[0])
  • 如果需要获取脚本执行后的返回值,可以保留returnByValue=True(默认值),并接收Runtime.evaluate的返回结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 19:08:12