按照freeCodeCamp教程编写Selenium Python Booking类报错无法排查
Selenium Python 代码报错排查及解决方法
核心代码问题修复
现有代码的PATH拼接逻辑存在错误:Windows系统环境变量PATH的多个路径通过英文分号;分隔,直接拼接驱动路径会导致路径串连,系统无法识别驱动所在位置。修复后的代码参考:
class Booking(webdriver.Chrome): def __init__(self, driver_path=r"C:\SeleniumDrivers"): self.driver_path = driver_path # 新增分号作为路径分隔符 os.environ['PATH'] += ';' + self.driver_path super(Booking, self).__init__() def land_first_page(self): self.get('https://www.booking.com')
通用排查步骤
- 确认浏览器与驱动版本匹配:打开Chrome浏览器「设置-关于Chrome」查看当前版本,下载对应大版本的ChromeDriver,放置到
C:\SeleniumDrivers路径下 - 适配Selenium版本:如果使用Selenium 4.6及以上版本,官方内置了驱动自动管理工具,无需手动配置环境变量,可直接简化代码为如下形式:
from selenium import webdriver class Booking(webdriver.Chrome): def __init__(self): super().__init__() def land_first_page(self): self.get('https://www.booking.com')
- 检查依赖导入:代码顶部必须导入
os、from selenium import webdriver两个依赖,缺失会直接触发报错 - 添加异常捕获定位问题:运行代码时新增异常捕获逻辑,打印具体报错信息缩小排查范围,示例如下:
if __name__ == '__main__': try: bot = Booking() bot.land_first_page() except Exception as e: print(f"报错详情:{e}")
- 检查驱动文件状态:Windows系统下确认ChromeDriver文件名为
chromedriver.exe,未被系统安全软件拦截、隔离或删除
内容的提问来源于stack exchange,提问作者Marshall Johnson
相关产品推荐
相关产品推荐

