Python MAC上的Selenium,消息:';chromedriver';可执行文件可能有错误的权限
我只是想用selenium在我的Mac上做一些非常基本的事情,我甚至不能打开网页。我得到一个错误: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
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
允许您的程序对其进行操作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)