我最近把我的mac电脑升级到OS Catalina(v 10.15.3)。在这次升级之后,我无法使用硒启动chrome驱动程序。

当我运行selenium代码启动chrome浏览器时,我面临以下错误。

“chromedriver”无法打开,因为开发人员无法验证”。 “macOS无法验证此应用程序没有恶意软件。”

请帮帮我!


当前回答

我发现,如果你尝试过这个解决方案:

// 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电脑

其他回答

快速解决方案

开放的仪 导航到chromedriver文件所在的位置 右键单击chromedriver文件并选择打开

在此之后,脚本应该可以正常工作。

Xattr -d com.apple.quarantine $(chromedriver)本身是不够的。

对于最新版本的chromedriver,似乎他们正在划分版本文件夹。 9月30日20日给我。对我有用的是xattr -d com.apple.quarantine 85.0.4183.87/chromedriver

在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驱动程序保存/下载的地方 右击并选择Open with 选择使用终端打开 允许或选择yes 您应该在终端屏幕上看到一条成功消息 返回打开你的chrome驱动程序或IDE并运行,你应该不会再得到错误了

我找到的工作如下

打开终端 导航到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,则必须在新下载的文件上再次执行该命令