M1 Mac PyCharm运行Python Selenium Webdriver代码编译报错求助
解决方案
首先你代码中的chromedriver路径存在拼写错误:你写的路径前缀是/Useres/,MacOS系统默认的用户目录前缀是/Users/,多写了一个字母e,这是触发FileNotFoundError的直接原因。你可以根据自己的使用场景选择以下任意一种方案解决问题:
方案1:修正路径+解决M1安全校验
- 先修正代码里的路径拼写:将
/Useres/arsenijgoj/PycharmProjects/pythonProject/chromedriver改为/Users/arsenijgoj/PycharmProjects/pythonProject/chromedriver - 如果你是首次在M1设备上使用自行下载的chromedriver,需要先解除苹果的安全拦截:打开终端进入chromedriver所在目录,执行
xattr -d com.apple.quarantine chromedriver即可 - 如果chromedriver和项目代码在同一目录下,也可以直接用相对路径简化写法:
driver = webdriver.Chrome('./chromedriver')
方案2:适配Selenium 4.6+版本的写法
Selenium从4.6版本开始内置了驱动自动管理功能,不需要手动下载chromedriver、也不需要手动指定路径,直接改写代码即可:
import time from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By # 自动匹配和当前Chrome版本适配的驱动,不需要手动指定路径 driver = webdriver.Chrome(service=Service()) driver.get('http://www.google.com/') time.sleep(5) search_box = driver.find_element(By.NAME, 'q') search_box.send_keys('ChromeDriver') search_box.submit() time.sleep(5) driver.quit()
方案3:用webdriver-manager自动管理驱动
如果你的Selenium版本低于4.6,可以通过第三方工具自动处理驱动的下载、路径匹配问题:
- 先执行安装命令:
pip install webdriver-manager - 改写代码如下:
import time from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By driver = webdriver.Chrome(service=Service(ChromeDriverManager().install())) driver.get('http://www.google.com/') time.sleep(5) search_box = driver.find_element(By.NAME, 'q') search_box.send_keys('ChromeDriver') search_box.submit() time.sleep(5) driver.quit()
内容的提问来源于stack exchange,提问作者arsu4ka
相关产品推荐
相关产品推荐

