Python MAC上的Selenium,消息:';chromedriver';可执行文件可能有错误的权限

Python MAC上的Selenium,消息:';chromedriver';可执行文件可能有错误的权限,python,selenium,selenium-webdriver,webdriver,selenium-chromedriver,Python,Selenium,Selenium Webdriver,Webdriver,Selenium Chromedriver,我只是想用selenium在我的Mac上做一些非常基本的事情,我甚至不能打开网页。我得到一个错误: Traceback (most recent call last): File "/Users/godsinred/Desktop/InstagramLiker/GmailAccountGenerator.py", line 10, in <module> driver = webdriver.Chrome() File "/Library/Frameworks/Pyt

我只是想用selenium在我的Mac上做一些非常基本的事情,我甚至不能打开网页。我得到一个错误:

Traceback (most recent call last):
  File "/Users/godsinred/Desktop/InstagramLiker/GmailAccountGenerator.py", line 10, in <module>
    driver = webdriver.Chrome()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/chrome/webdriver.py", line 68, in __init__
    self.service.start()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/common/service.py", line 88, in start
    os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable may have wrong permissions. Please see https://sites.google.com/a/chromium.org/chromedriver/home

错误说明了一切:

selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable may have wrong permissions. Please see https://sites.google.com/a/chromium.org/chromedriver/home
该错误明确指出,检测到的chromedriver具有错误的权限


解决方案
  • 从下载最新的chromedriver二进制文件,并将其保存在您的系统中
  • 确保chromedriver二进制文件具有所需的权限
  • 启动WebDriver和WebClient时,传递参数可执行路径以及chromedriver二进制文件的绝对路径,如下所示:

    from selenium import webdriver
    
    link = "https://accounts.google.com"
    driver = webdriver.Chrome(executable_path='/path/to/chromedriver')
    driver.get(link)
    

参考文献 您可以在以下内容中找到详细的相关讨论:


这起作用了!我按照以下说明更新路径:


我将chromedriver.exe从Finder拖到终端(/etc/path),然后在终端中复制地址,并将其放入我的Python IDE中,在该IDE中插入路径。

这里和其他相关帖子中的大多数答案都建议用户只需将文件移动到
/usr/bin
,如果您只是在本地正常运行
chromedriver
,它们就可以正常工作

但是,如果您正在使用诸如
cx\u freeze
之类的编译器将Python脚本编译成可执行文件,那么如果您的程序总是使用到
chromedriver
的相对链接,那么您可能负担不起这种奢侈

如错误消息所示,您编译的程序没有操作
chromedriver
的权限。要在编译好的Python程序中使用Mac上的
chromedriver
的相对链接,您可以通过以下方式以编程方式更改Python脚本中
chromedriver
的权限:

import os
os.chmod('/path/to/chromedriver', 0755) # e.g. os.chmod('/Users/user/Documents/my_project/chromedriver', 0755)

您可以通过执行以下操作来测试这一点:

  • cd
    到您的工作目录

  • $chmod 755 chromedriver
    允许您的程序对其进行操作

  • p.S.
    755
    usr/bin
    中文件的默认数字权限
    664
    是其他普通文件夹(可能是您的工作目录)中文件的默认数字权限。因此,当
    chromedriver
    抱怨它没有正确的权限时,您需要授予它等于或大于
    755
    的数字权限


    查看此主题的详细信息

    1-如果您使用的是Linux,请访问包含该文件的文件夹 Chromedriver.exe设置在755上

    2-检查代码中Chromedriver.exe文件的正确路径


    3-如果您使用的是Windows服务器,请检查Chromedriver.exe文件是否可供当前用户使用(不仅管理员有权访问Chromedriver.exe-请参见c://users…

    如果您在Windows上,请提供包含文件名的路径。例如 “./chromedriver/chromedriver.exe” 我的代码行如下所示


    service=webdriver.chrome.service.service('./chromedriver/chromedriver.exe')

    非常感谢您的帮助。我还忘了将它添加到我的路径中。在终端中执行sudo path/etc/path/,并将chrome驱动程序添加到路径目录欢迎使用堆栈溢出!虽然链接是分享知识的好方法,但如果将来它们被破坏了,它们就不会真正回答这个问题。在回答中添加回答问题的链接的基本内容。如果内容太复杂或太大而不适合此处,请描述建议解决方案的总体思路。请记住始终保留原始解决方案网站的链接引用。见:
    import os
    os.chmod('/path/to/chromedriver', 0755) # e.g. os.chmod('/Users/user/Documents/my_project/chromedriver', 0755)