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

Selenium场景下用asyncio执行CDP命令所需vendor_prefix是多少?求示例

vendor_prefix 取值

Chrome/Chromium 驱动对应的vendor_prefix固定为goog,这是谷歌为自家WebDriver扩展命令预留的统一前缀。

接口使用说明

完整的CDP命令调用端点格式如下:
POST /session/$sessionId/goog/cdp/execute
请求体需传入两个参数:

  • cmd:要执行的CDP命令全名,例如Page.navigate、Network.setUserAgentOverride
  • params:对应CDP命令的参数对象,无参数时传空对象{}

asyncio 调用示例

以下是基于aiohttp的异步调用示例,需提前获取ChromeDriver服务地址和当前会话的sessionId:

import aiohttp
import asyncio

async def execute_cdp(driver_host: str, session_id: str, cdp_cmd: str, cdp_params: dict):
    """异步调用ChromeDriver CDP接口"""
    request_url = f"{driver_host}/session/{session_id}/goog/cdp/execute"
    async with aiohttp.ClientSession() as http_session:
        async with http_session.post(
            url=request_url,
            json={"cmd": cdp_cmd, "params": cdp_params}
        ) as resp:
            return await resp.json()

# 调用示例
async def main():
    # 替换为你的ChromeDriver实际地址
    driver_service = "http://127.0.0.1:9515"
    # 替换为你的会话实际ID
    current_session_id = "abc123def456ghi789"
    # 示例:调用Network.setUserAgentOverride修改UA
    result = await execute_cdp(
        driver_host=driver_service,
        session_id=current_session_id,
        cdp_cmd="Network.setUserAgentOverride",
        cdp_params={"userAgent": "Custom UserAgent/1.0"}
    )
    print("接口返回结果:", result)

if __name__ == "__main__":
    asyncio.run(main())

补充说明

如果使用的是Edge浏览器的EdgeDriver,对应的vendor_prefix取值为ms,其他逻辑完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:45:00