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

Selenium中driver.execute_script遇特殊字符报Unexpected token错误原因

报错原因及解决方案

报错核心原因

你直接将Python列表转为字符串后拼接进JavaScript代码,引发了两个关键问题:

  • Python的str(list_of_words)会生成带括号、逗号的列表格式字符串(比如['"Fresh apple"', '"green apple"~2', '"spoiled apple"~1']),拼入JS后,JS会把列表内的内容当作表达式解析。
  • 对于"green apple"~2这类内容,JS会把~识别为按位取反运算符,但字符串和数字直接用该运算符的写法不符合JS语法规则,因此抛出Unexpected token '~'的语法错误。
  • 此外,这种拼接方式还会保留Python列表的括号、逗号,完全不符合你需要的换行输出格式。

正确实现代码

要快速设置textarea值、保留特殊字符并输出换行格式,正确的做法是:

  1. 用换行符\n将Python列表元素连接成目标格式的字符串;
  2. 通过execute_script的参数传递字符串,避免直接拼接JS代码导致的语法问题。

修改后的代码如下:

list_of_words = ['"Fresh apple"','"green apple"~2','"spoiled apple"~1']

# 用换行符拼接成期望的字符串格式
target_content = '\n'.join(list_of_words)

# 通过arguments[0]接收Python传入的参数,避免JS语法错误
driver.execute_script("""
    document.getElementById('section').getElementsByTagName('textarea')[0].value = arguments[0];
""", target_content)

这样设置后,textarea的内容会完全匹配你的期望输出,同时不会触发任何JS语法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 22:30:48