我最近把我的mac电脑升级到OS Catalina(v 10.15.3)。在这次升级之后,我无法使用硒启动chrome驱动程序。
当我运行selenium代码启动chrome浏览器时,我面临以下错误。
“chromedriver”无法打开,因为开发人员无法验证”。 “macOS无法验证此应用程序没有恶意软件。”
请帮帮我!
我最近把我的mac电脑升级到OS Catalina(v 10.15.3)。在这次升级之后,我无法使用硒启动chrome驱动程序。
当我运行selenium代码启动chrome浏览器时,我面临以下错误。
“chromedriver”无法打开,因为开发人员无法验证”。 “macOS无法验证此应用程序没有恶意软件。”
请帮帮我!
在macOS Catalina和macOS Mojave中,当一个应用程序因为没有经过公证或来自未知开发者而无法安装时,它将出现在“常规”选项卡下的“系统首选项>安全与隐私”中。点击“无论如何打开”来确认你要打开或安装应用程序的意图。
再次弹出警告提示,单击“Open.*”
该应用程序现在被保存为安全设置的一个例外,将来你可以像打开任何授权应用程序一样双击打开它。
*如果提示打开Finder:在Finder中控制单击应用程序,从菜单中选择打开,然后在出现的对话框中单击打开。输入您的管理员名和密码打开应用程序。
我找到的工作如下
打开终端 导航到chromedriver文件所在的路径 执行以下任意一个命令
命令1:xattr -d com.apple.quarantine <可执行文件名称>
例子
/usr/local/Caskroom/chromedriver
$ xattr -d com.apple.quarantine chromedriver
(or)
命令2:spctl——add——label 'Approved' <可执行文件名>
来源:https://docwhat.org/upgrading-to-catalina
注意:这只适用于执行上述命令的文件。如果下载了新的chromedriver,则必须在新下载的文件上再次执行该命令
The above answers were helpful. I would just add that if you're running Selenium from a development environment, in my case a Jupyter Notebook, and this is the issue, you're likely to see a PermissionError: [Errno 13] Permission denied error. There are other causes for this error, but it can be that macOS Catalina is blocking chromedriver from running for security reasons. Following the approaches above, I ran it from the command line and then was able to open it from Jupyter using driver = webdriver.Chrome('path/to/chromedriver).
现有的答案很好,而且很有效。
但是一个更简单的解决方案是打开终端并运行这个:
xattr -d com.apple.quarantine $(which chromedriver)
Xattr -d com.apple.quarantine $(chromedriver)本身是不够的。
对于最新版本的chromedriver,似乎他们正在划分版本文件夹。 9月30日20日给我。对我有用的是xattr -d com.apple.quarantine 85.0.4183.87/chromedriver
解决这个问题有两个步骤:
使用- cd /usr/local/bin命令进入该路径。这是你将看到你的chromedriver安装的地方。 当进入bin目录时,执行此命令- xattr -d com.apple.quarantine chromedriver。
就这些。这对我来说很管用。
(对我有用的,希望对你也有用)
所有macOS Big Sur 11.0用户更新:
使用自制软件安装chromedriver 酿造安装chromedriver 导航到Caskroom文件夹中的chromedriver /usr/local/bin/Caskroom/chromedriver……直到你看到Unix可执行文件“chromedriver” 按照苹果公司的建议,打开来自未知开发者的Mac应用程序,双击chromedriver,然后点击“打开”
对我来说,这导致一个终端窗口弹出输出:
Starting ChromeDriver ...
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
我现在可以运行scrapy-selenium没有问题,你可以关闭终端窗口(是的,终止进程是OK的),它应该仍然工作而不停止你现在。
如果这对你有用,请告诉我
在macOS Catalina 10.15.6 (19G73)版本上对我有用的是
通过Homebrew安装chromedriver: 酿造安装chromedriver 然后,在Finder中单击Go菜单,然后单击Go to folder选项,并输入以下路由: /usr/local/Caskroom/chromedriver / 在那里你应该会看到一个文件夹,里面有你安装的chromedriver版本,就像这样: 88.0.4324.96 输入文件夹,您应该会看到chromedriver二进制文件。 右键点击它,然后点击打开
现在,你应该得到一个终端窗口弹出输出:
Last login: Sun Jan 31 12:29:15 on ttys001
/usr/local/Caskroom/chromedriver/88.0.4324.96/chromedriver ; exit;
~ /usr/local/Caskroom/chromedriver/88.0.4324.96/chromedriver ; exit;
Starting ChromeDriver 88.0.4324.96 (68dba2d8a0b149a1d3afac56fa74648032bcf46b-refs/branch-heads/4324@{#1784}) on port 9515
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
最后,按Ctrl+C停止执行并退出终端窗口。
现在你应该可以做水豚测试了。
这是一个许可问题…… 升级chrome后,这个错误显示,所以我遵循下面提到的步骤,它在我的系统工作。
系统设置 安全与隐私 进入“常规”选项卡 允许从以下地方下载应用程序: 选择App Store和已识别的开发商 单击锁进行更改。 输入系统密码 点击“无论如何打开”来确认你要打开或安装应用程序的意图。
我发现,如果你尝试过这个解决方案:
// Get the path to chromedriver, example: /usr/local/bin/chromedriver
which chromedriver
// Change permissions
xattr -d com.apple.quarantine <path_to_chromedriver>
你的浏览器打开后又立即关闭,这可能是因为安装了错误的chromedriver版本。
寻找你的chrome版本启动chrome然后选择
Chrome > About Google Chrome
删除您当前的chromedriver,并在“关于谷歌chrome”中搜索与您的chrome版本匹配的chromedriver(例如:96.0.4664.110)。我用的是一台安装了Monterey操作系统的mac电脑
解决此错误的最简单方法,请遵循以下步骤。
导航到你的chrome驱动程序保存/下载的地方 右击并选择Open with 选择使用终端打开 允许或选择yes 您应该在终端屏幕上看到一条成功消息 返回打开你的chrome驱动程序或IDE并运行,你应该不会再得到错误了
在M1 mac上安装webdriver-manager的困难更新:
我正在运行一个ARM64 conda miniforge3 env,想知道webdriver_manager安装问题是否可能缺少支持/兼容性,就像这里讨论的Mozilla geckodriver一样。虽然车手似乎已经增加了对M1的支持,但似乎还有一些尚未解决的问题(见这里)。
不管怎样,手动安装ChromeDriver很容易:
有Chrome安装>下载相应的驱动版本 (例如,106)从 ChromeDriver 将它添加到$PATH中,即将shell文件粘贴到$PATH所在的位置,例如,/usr/local/bin/,或者通过命令行:
echo $PATH
export PATH=$PATH:/path/to/chrome-driver
PS:在开始驾驶之前,您必须以管理员身份运行一次驱动程序文件。如果你的Mac不相信驱动文件,按Ctrl+单击并打开。
更新到Mac OS Ventura 13.0后,您现在需要进入系统设置>隐私和安全。向下滚动到安全部分,你可以在那里看到chromedriver。单击Allow Anyway(它将提示输入管理凭据)。