如何解决Selenium中ChromeDriver执行文件权限错误问题?
解决Selenium ChromeDriver权限错误的方案
这个问题我碰到过好多次了,主要是两个核心原因:路径指向不正确,或者ChromeDriver文件没有足够的执行权限,咱们一步步来解决:
1. 先检查ChromeDriver的路径是否正确
你代码里写的 executable_path="/Users/NahuApple/webDriver" 看起来是一个文件夹路径,但Selenium需要的是指向具体的ChromeDriver可执行文件的路径。如果你的ChromeDriver确实放在这个文件夹里,正确的路径应该是:
"/Users/NahuApple/webDriver/chromedriver"
(macOS下ChromeDriver的默认文件名是chromedriver,注意区分大小写)
2. 修复ChromeDriver的执行权限
macOS默认会限制未知来源的可执行文件,或者新下载的ChromeDriver可能没有执行权限。打开终端,执行以下命令给文件添加执行权限:
chmod +x /Users/NahuApple/webDriver/chromedriver
如果之后运行时遇到「无法打开,因为无法验证开发者」的系统提示,还需要移除文件的隔离属性,执行:
xattr -d com.apple.quarantine /Users/NahuApple/webDriver/chromedriver
或者也可以去系统偏好设置的「安全性与隐私」面板,手动允许该文件运行。
3. 修改代码并测试
把代码里的路径改成指向具体的可执行文件,修改后的完整代码如下:
import time from selenium import webdriver # 注意这里要指向chromedriver文件,不是文件夹 driver = webdriver.Chrome(executable_path="/Users/NahuApple/webDriver/chromedriver") 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()
额外建议(针对Selenium 4.x版本)
如果你用的是Selenium 4及以上版本,官方更推荐使用Service类来管理驱动,写法更规范,也能避免一些路径相关的问题,示例代码:
import time from selenium import webdriver from selenium.webdriver.chrome.service import Service service = Service("/Users/NahuApple/webDriver/chromedriver") 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()
内容的提问来源于stack exchange,提问作者user14041846
相关产品推荐
相关产品推荐

