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

如何将Python读取的CSV变量传入脚本执行的JavaScript代码中

问题解决方法

你的原有写法存在两处错误:

  1. Python的str.format()方法写在了JS字符串的内部,Python不会解析字符串内部的方法调用,占位符无法被替换为实际变量值
  2. JS代码中拼接a标签的逻辑遗漏了<a href="前缀,会导致生成的a标签格式错误

快速修复方案(仅适用于变量无特殊字符的场景)

将format方法移到三引号字符串外部,按顺序传入变量即可:

js = """
var search = "{}";
var replacement = "{}";
var replacementTag = '<a href="'+replacement+'" target="_blank">'+search+'</a>';
document.body.innerHTML = document.body.innerHTML.split(search).join(replacementTag);
""".format(mystring, mylink)

driver.execute_script(js)

推荐最优方案(无需处理转义,兼容所有合法变量值)

Selenium的execute_script原生支持向JS执行环境传参,不需要手动做字符串拼接,直接按顺序传入Python变量,在JS中通过arguments对象按索引读取即可:

js = """
var search = arguments[0];
var replacement = arguments[1];
var replacementTag = '<a href="'+replacement+'" target="_blank">'+search+'</a>';
document.body.innerHTML = document.body.innerHTML.split(search).join(replacementTag);
"""
# 按顺序传递Python变量,无需处理任何转义字符
driver.execute_script(js, mystring, mylink)

注意事项

直接修改document.body.innerHTML会清除页面原有DOM绑定的事件监听,如果业务需要保留原有事件,可以改为遍历文本节点做精准替换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:15:03