Selenium运行报错NameError: name 'driver' is not defined如何解决?
问题报错信息
>>> driver.get('https://www.youtube.com/') Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'driver' is not defined. Did you mean: 'webdriver'?
报错根因排查
- 执行顺序问题:你在Python交互式终端中跳步执行代码,仅运行了
driver.get()语句,没有先按顺序执行前面的driver = webdriver.Chrome()初始化代码,导致driver变量未被定义 - 初始化执行失败:
driver = webdriver.Chrome('/Users/MyUsername/Downloads/chromedriver')这句代码本身运行报错,导致driver变量没有被成功创建,后续调用自然找不到该变量,初始化失败的常见触发点是你使用的Selenium版本过高,旧版传参写法已失效,或是chromedriver路径、版本不匹配
解决方案
- 按顺序执行完整代码:如果在Python交互式终端(显示
>>>提示符)运行,必须从上到下依次执行所有导入、初始化代码,确认初始化无报错后再执行页面访问代码,不要跳步运行 - 适配Selenium版本调整driver初始化写法:
- 若使用Selenium 4.6及以上版本,无需手动指定chromedriver路径,内置的Selenium Manager会自动适配对应版本驱动,直接替换初始化代码为:
driver = webdriver.Chrome() - 若需要手动指定本地chromedriver路径,高版本Selenium需要通过Service对象传参,完整写法如下:
from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.keys import Keys import pandas as pd service = Service(executable_path='/Users/MyUsername/Downloads/chromedriver') driver = webdriver.Chrome(service=service) driver.get('https://www.youtube.com/')
- 若使用Selenium 4.6及以上版本,无需手动指定chromedriver路径,内置的Selenium Manager会自动适配对应版本驱动,直接替换初始化代码为:
- 核对驱动匹配性:如果坚持使用手动指定驱动的方式,需要确认你下载的chromedriver大版本和本地安装的Chrome浏览器大版本完全一致,同时确认填写的驱动文件路径真实有效。
内容的提问来源于stack exchange,提问作者Chad
相关产品推荐
相关产品推荐

