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

如何在Selenium的execute_script中把Python变量拼接到window.open链接内

报错原因

你定义的sample是Python环境的变量,和execute_script里运行的JavaScript分属完全独立的执行上下文,JS环境默认无法直接读取Python侧的变量,因此抛出「找不到变量sample」的错误。

正确实现方法

Selenium的execute_script原生支持参数传递:你只需要把要传入的变量按顺序放在execute_script的第二个及之后的参数位置,在JS代码内通过arguments[下标](下标从0开始,对应传入的第一个参数)读取即可。

写法1:直接传参数给JS拼接

sample = 5
driver.execute_script("window.open('http://www.wolframalpha.com/input/i?=' + arguments[0]);", sample)

写法2:Python侧先拼接完整URL再传入(更推荐,方便调试和做URL编码处理)

sample = 5
# 先在Python侧拼接好完整目标地址
target_url = f"http://www.wolframalpha.com/input/i?={sample}"
driver.execute_script("window.open(arguments[0]);", target_url)

额外注意:如果查询参数包含特殊字符/中文/空格,需要先做URL编码避免格式错误

from urllib.parse import quote

sample = "求x²的定积分"
# 编码参数后再拼接URL
encoded_sample = quote(sample)
target_url = f"http://www.wolframalpha.com/input/i?={encoded_sample}"
driver.execute_script("window.open(arguments[0]);", target_url)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:27:04