问题
下载了Webdriver并且将Webdriver的文件夹配置到了环境变量,但是执行Selenium脚本没有打开对应的浏览器或报错。
产生原因
Webdriver版本没有和本机浏览器版本对应
解决办法
首先查看自己本机浏览器的版本,例:
之后找到对应的Webdriver仓库,下载对应版本的Webdriver,版本要求为(大版本号对应即可,小版本号不做要求)
Webdriver仓库地址:
ChromeDriver
EdgeDriver
FireFoxDriver
还有一个小技巧,比如要下载chromedriver的驱动,可以随意找一个对应平台的下载链接,将链接中的版本号修改为自己本机浏览器地址,如下图所示:
接下来就可以配置环境变量到chromedriver.exe或chromedriver上层目录即可
或
在代码中指定路径
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
service = Service(executable_path="(此处更换为你自己的路径)/Users/ann/PycharmProjects/drivers/127.0.6533.120/chromedriver")
driver = webdriver.Chrome(service=service)
或
使用第三方库webdriver_manager
首先安装
pip install webdriver-manager
下面就是一个简单的示例说明如何使用它来启动Chrome
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
# 使用 webdriver_manager 自动下载并启动 Chrome WebDriver
driver = webdriver.Chrome(ChromeDriverManager().install())
# 打开一个网站
driver.get("https://ceshiren.com/")
# 关闭浏览器
driver.quit()
webdriver_manager 会将下载的 WebDriver 文件存储在本地缓存目录中。它的默认缓存位置是根据操作系统定义的:
-
Windows: C:/Users/<用户名>/.wdm/drivers
-
macOS 和 Linux: /Users/<用户名>/.wdm/drivers
这个缓存机制使得 webdriver_manager 在第二次启动时,可以直接使用已经下载的 WebDriver,而不需要每次都重新下载。