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

Python中如何在三引号字符串内的字典中嵌入变量?

解决Python变量嵌入CDP命令脚本的问题

你当前的问题是:Python变量os没有被正确嵌入到CDP命令的JS脚本字符串中,因为三引号内的os会被当作JavaScript变量而非Python变量处理,自然无法获取到Python中os的值。

以下是几种正确的变量嵌入方式:

方法1:使用f-string(Python3.6+推荐)

在三引号字符串前添加f前缀,并用{}包裹Python变量,同时注意为JS字符串添加引号(确保JS能识别为字符串字面量):

os = 'Linux'
driver.execute_cdp_cmd(
    "Page.addScriptToEvaluateOnNewDocument",
    {
        "source": f"""
            Object.defineProperty(navigator, 'platform', {{get: () => '{os}'}});
        """
    }
)

注意:这里JS对象的大括号需要用双大括号{{}}转义,避免被f-string解析为占位符。

方法2:使用str.format()方法

适合Python3.6之前的版本,通过占位符替换变量:

os = 'Linux'
driver.execute_cdp_cmd(
    "Page.addScriptToEvaluateOnNewDocument",
    {
        "source": """
            Object.defineProperty(navigator, 'platform', {{get: () => '{0}'}});
        """.format(os)
    }
)

或者使用命名占位符更清晰:

os = 'Linux'
driver.execute_cdp_cmd(
    "Page.addScriptToEvaluateOnNewDocument",
    {
        "source": """
            Object.defineProperty(navigator, 'platform', {{get: () => '{os_val}'}});
        """.format(os_val=os)
    }
)

方法3:字符串拼接(不推荐,易出错)

直接通过+拼接字符串,但需要手动处理引号和转义:

os = 'Linux'
driver.execute_cdp_cmd(
    "Page.addScriptToEvaluateOnNewDocument",
    {
        "source": """
            Object.defineProperty(navigator, 'platform', {get: () => '""" + os + """'});
        """
    }
)

这种方式在变量包含特殊字符(如引号、换行)时容易出现语法错误,所以优先推荐前两种方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 11:37:00