Selenium初始化Chrome驱动报unicodeescape语法错误如何解决
报错根因
这个语法错误和Selenium依赖、chromedriver文件本身没有关系,是Python字符串的转义规则触发的:
Windows本地路径默认用反斜杠\做路径分隔符,但在Python的普通双引号/单引号字符串中,\是转义标记符。你写的路径里C:\Users段的\U会被Python自动识别为「8位Unicode字符转义序列」的开头(格式要求为\U后跟8位十六进制字符),但后续路径内容完全不符合这个转义格式要求,所以代码还没执行到初始化驱动的逻辑,就先抛出了转义解码失败的语法错误。
可用解决方法
你可以任选以下一种写法修正路径即可解决报错:
- 方法1:给路径字符串加
r前缀,标记为原始字符串,让Python完全不解析字符串内的转义符,这是Windows路径书写最简便的方式# 注意要补上chromedriver的.exe后缀,否则后续会报文件找不到 driver = webdriver.Chrome(executable_path = r"C:\Users\hp\Downloads\chromedriver.exe") - 方法2:把路径里所有的反斜杠
\替换为正斜杠/,Python可以直接识别Windows系统下这种格式的路径,不会触发转义逻辑driver = webdriver.Chrome(executable_path = "C:/Users/hp/Downloads/chromedriver.exe") - 方法3:把路径里的每个反斜杠都替换为双反斜杠
\\,用转义后的反斜杠字符表示实际的路径分隔符driver = webdriver.Chrome(executable_path = "C:\\Users\\hp\\Downloads\\chromedriver.exe")
额外注意事项
- 修正路径转义问题后,要确认你填写的路径下确实存在chromedriver文件,且chromedriver的大版本号和本地安装的Chrome浏览器大版本完全一致,否则会出现驱动启动失败的问题。
- 如果你使用的是Selenium 4.6及以上的版本,不需要手动传入
executable_path参数,框架内置的Selenium Manager会自动下载、匹配对应版本的chromedriver,直接写driver = webdriver.Chrome()即可完成驱动初始化,省去手动管理驱动路径、版本的步骤。
内容的提问来源于stack exchange,提问作者nassur
相关产品推荐
相关产品推荐

