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

如何在Python的Selenium中使用带变量的execute_script方法

如何在Selenium的execute_script中传递Python变量到JavaScript?

我懂你遇到的问题了——直接在JS代码里写Python变量名肯定行不通,因为Python的变量上下文和浏览器的JavaScript环境是完全隔离的,浏览器根本不知道keyy这个东西是什么,所以才会抛出ReferenceError。

这里有两种靠谱的解决方式:

方法1:使用字符串格式化插入变量

如果你的变量内容比较简单(没有单引号、双引号这类特殊字符),可以用Python的字符串格式化把变量值直接嵌入到JS代码里:

pageurl = 'https://www.google.com'
driver.get(pageurl)
keyy = 'blabla'
driver.execute_script(f"alert('{keyy}')")

不过要注意,如果keyy里包含单引号(比如keyy = "I'm boon"),这种写法会破坏JS代码的语法,引发新错误,所以它只适合简单场景。

方法2:使用execute_script的参数传递(推荐)

这是更安全、通用的方式,execute_script方法支持在JS代码后面传入额外参数,这些参数会作为JS里arguments数组的元素被访问到:

pageurl = 'https://www.google.com'
driver.get(pageurl)
keyy = 'blabla'
driver.execute_script("alert(arguments[0])", keyy)

要是需要传递多个变量也很方便,比如:

var1 = 'hello'
var2 = 'world'
driver.execute_script("alert(arguments[0] + ' ' + arguments[1])", var1, var2)

这种方式不需要处理字符串转义,不管变量里有什么特殊字符都能正常工作,也是官方推荐的做法。

内容的提问来源于stack exchange,提问作者Mr.Boon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:34:07