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”可执行文件可能有错误的权限