WebDriverException:消息:“msedgedriver.exe”可执行文件可能在 Google Collab 中有错误的权限

Posted

技术标签:

【中文标题】WebDriverException:消息:“msedgedriver.exe”可执行文件可能在 Google Collab 中有错误的权限【英文标题】:WebDriverException: Message: 'msedgedriver.exe' executable may have wrong permissions in Google Collab 【发布时间】:2022-01-20 12:38:19 【问题描述】:

我使用了 Google Collab 和浏览器 Edge,并用 selenuim 尝试了这段代码:

!wget  -O 'edgedriver_win64.zip' -q 
'https://msedgedriver.azureedge.net/96.0.1054.57/edgedriver_win64.zip'
!unzip '/content/edgedriver_win64.zip'

import selenium
from selenium import webdriver
wd = webdriver.Edge('/content/msedgedriver.exe')

我遇到了这个错误:

/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:3: DeprecationWarning: executable_path has been deprecated, please pass in a Service object
  This is separate from the ipykernel package so we can avoid doing imports until
---------------------------------------------------------------------------
PermissionError                           Traceback (most recent call last)
/usr/local/lib/python3.7/dist-packages/selenium/webdriver/common/service.py in start(self)
     75                                             stdin=PIPE,
---> 76                                             creationflags=self.creationflags)
     77         except TypeError:

5 frames
PermissionError: [Errno 13] Permission denied: '/content/msedgedriver.exe'

During handling of the above exception, another exception occurred:

WebDriverException                        Traceback (most recent call last)
/usr/local/lib/python3.7/dist-packages/selenium/webdriver/common/service.py in start(self)
     86                 raise WebDriverException(
     87                     "'%s' executable may have wrong permissions. %s" % (
---> 88                         os.path.basename(self.path), self.start_error_message)
     89                 )
     90             else:

WebDriverException: Message: 'msedgedriver.exe' executable may have wrong permissions. Please download from https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

但是我之前已经通过 !wget 下载了最新版本的 Edge 驱动程序,我不知道如何修复它,因为 Stack Overflow 上的所有解决方案都是针对 Chrome 驱动程序的,它们对我不起作用。

【问题讨论】:

嗨@F1nn 这个问题怎么样? my answer below 对解决问题有帮助吗?如果有什么我可以在这里提供帮助的,请告诉我。 【参考方案1】:

Edge 和 Chrome 都是基于 chromium 的,所以你可以参考 Chrome 驱动的代码。

Google Colaboratory 是一个免费的 Jupyter 笔记本环境,无需设置,完全在云端运行。整个 colab 在云虚拟机中运行。当前的 colab notebook 运行在 Ubuntu 18.04.3 LTS 之上。

如果操作系统是 Linux,当您指定 msedgedriver 二进制路径时,您不需要为可执行二进制文件提供任何扩展名。示例代码是这样的:

wd = webdriver.Edge('/content/msedgedriver')

参考链接:WebDriverException: Message: 'chromedriver.exe' executable may have wrong permissions using Google Colaboratory through Selenium Python

【讨论】:

我的操作系统是 Windows 10,因此如果当前的 colab 笔记本电脑运行在 Ubuntu 18.04.3 LTS 之上,那么对于 Linux,我需要使用 !wget 为哪个操作系统下载 msedgedriver? 你应该下载edgedriver_linux64.zip。如果您在 Google Colaboratory 上运行测试,它与您的操作系统无关。此外,您应该在 Google Colaboratory 云虚拟机上安装适用于 Linux 的正确版本的 Edge 浏览器。 Edge 驱动版本应与浏览器版本一致。

以上是关于WebDriverException:消息:“msedgedriver.exe”可执行文件可能在 Google Collab 中有错误的权限的主要内容,如果未能解决你的问题,请参考以下文章

Selenium 因 selenium.common.exceptions.WebDriverException 崩溃:消息:newSession

selenium.common.exceptions.WebDriverException:消息:在 Python selenium 4 中

Webdriver 因 selenium.common.exceptions.WebDriverException 崩溃:消息:newSession [重复]

selenium.common.exceptions.WebDriverException:消息:未知错误:调用函数结果缺少“值”

selenium.common.exceptions.WebDriverException:消息:服务 geckodriver 意外退出。状态码是:69

selenium.common.exceptions.WebDriverException:消息:“WebScraping”可执行文件可能有错误的权限