使用Python3+Selenium ChromeDriver打开新标签页报错:Invalid character in identifier
解决Selenium在Mac上打开新标签页报错"Invalid character in identifier"的问题
嘿,我碰到过类似的坑,来给你捋捋怎么搞定!
首先,你遇到的"Invalid character in identifier"错误,大概率是代码里混入了不可见的特殊字符(比如从网页复制代码时带的隐藏格式字符),或者语法上有细微疏漏。别着急,给你几个靠谱的解决方案:
方案1:改用JavaScript打开新标签页(最稳定)
用快捷键有时候会受页面焦点影响,不如直接调用浏览器的JS接口,这种方法不受焦点限制,稳定性拉满:
# 导入需要的模块(如果还没导的话) from selenium import webdriver # 打开新标签页 driver.execute_script("window.open('');") # 切换到刚打开的新标签页(window_handles是所有标签页的列表,[-1]取最后一个) driver.switch_to.window(driver.window_handles[-1]) # 访问目标URL driver.get("你的指定URL")
方案2:修复快捷键方法的问题
如果你还是想用快捷键方式,先检查这两点:
- 手动重新输入代码:把
driver.find_element_by_tag_name('body').send_keys(Keys.COMMAND + 't')这行完全手动敲一遍,避免复制带来的隐藏特殊字符——很多时候这个操作就能直接解决错误。 - 确保body元素获得焦点:有时候页面上的输入框、按钮会抢焦点,导致快捷键没效果,先点击body再发送按键:
from selenium.webdriver.common.keys import Keys # 先获取body元素并点击聚焦 body_element = driver.find_element_by_tag_name('body') body_element.click() # 发送快捷键打开新标签页 body_element.send_keys(Keys.COMMAND + 't') # 切换到新标签页 driver.switch_to.window(driver.window_handles[-1]) # 再次访问同一URL driver.get("你的指定URL")
额外提示
切换标签页后,一定要记得用driver.switch_to.window()切换上下文,不然后续操作还是会在原来的标签页里执行哦!
内容的提问来源于stack exchange,提问作者user9510595
相关产品推荐
相关产品推荐

