Python Selenium浏览器秒退及AttributeError错误解决方案求助
问题解决方案
错误原因分析
- 驱动路径错误:你指定的
executable_path是文件夹C:\Users\Drivers\Chrome,而非具体的chromedriver.exe可执行文件,导致Selenium无法正确启动驱动服务。 - 路径转义问题:Python中字符串的反斜杠是转义字符,直接写
C:\Users\...会导致路径解析错误。 - Selenium版本兼容问题:高版本Selenium(4.x+)已弃用直接在
webdriver.Chrome()中传入executable_path的方式,强制使用Service类管理驱动服务,旧写法会引发内部属性错误。
修复步骤
确认驱动文件路径
找到你的chromedriver.exe所在的完整路径,比如C:\Users\Drivers\Chrome\chromedriver.exe,确保Chrome浏览器版本和chromedriver版本完全匹配(版本号差异不能超过1个大版本)。使用正确的路径写法
在Python中表示Windows路径有两种可靠方式:- 原始字符串:
r"C:\Users\Drivers\Chrome\chromedriver.exe" - 双反斜杠:
"C:\\Users\\Drivers\\Chrome\\chromedriver.exe"
- 原始字符串:
改用Service类初始化驱动
高版本Selenium必须通过Service类传入驱动路径,再传递给webdriver.Chrome()。
修正后的完整代码
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.service import Service # 替换为你的chromedriver.exe完整路径 driver_path = r"C:\Users\Drivers\Chrome\chromedriver.exe" service = Service(driver_path) driver = webdriver.Chrome(service=service) driver.get("https://opensource-demo.orangehrmlive.com/") driver.find_element(By.NAME, "username").send_keys("Admin") driver.find_element(By.ID, "password").send_keys("admin123") # 若需保持浏览器打开,注释下面一行;如需彻底关闭服务,改用driver.quit() # driver.close()
额外注意事项
- 若浏览器仍闪退,优先检查Chrome浏览器和chromedriver的版本匹配度,可从Chrome设置中查看浏览器版本,再下载对应版本的chromedriver。
- 建议使用
driver.quit()替代driver.close(),前者会彻底终止驱动服务,避免残留进程。
内容的提问来源于stack exchange,提问作者Swaroopa
相关产品推荐
相关产品推荐

