我环顾四周检查了两份文件并找不到答案。
我一直在尝试将InstaPy用于python的instagram api。失败后出现多个错误,并假设InstaPy只是遇到了一些问题,所以我尝试使用selinium对其进行原始编码。在插入示例代码并将其改为我喜欢之后,我确保这个代码可以正常工作。我收到了一个新错误而不是旧错误,说权限可能不对。我尝试重新安装并以管理员身份运行,但没有任何作用。我该如何解决这个和/或这是什么意思
代码:
import time
from selenium import webdriver
driver = webdriver.Chrome('C:\Webdrivers') # Optional argument, if not specified will search path.
driver.get('http://www.google.com/xhtml');
time.sleep(5) # Let the user actually see something!
search_box = driver.find_element_by_name('q')
search_box.send_keys('ChromeDriver')
search_box.submit()
time.sleep(5) # Let the user actually see something!
driver.quit()
错误:
Traceback (most recent call last):
File "C:\Program Files (x86)\Python36-32\lib\site-packages\selenium\webdriver\common\service.py", line 74, in start
stdout=self.log_file, stderr=self.log_file)
File "C:\Program Files (x86)\Python36-32\lib\subprocess.py", line 707, in __init__
restore_signals, start_new_session)
File "C:\Program Files (x86)\Python36-32\lib\subprocess.py", line 990, in _execute_child
startupinfo)
PermissionError: [WinError 5] Access is denied
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Webdrivers\RawBot.py", line 5, in <module>
driver = webdriver.Chrome('C:\Webdrivers') # Optional argument, if not specified will search path.
File "C:\Program Files (x86)\Python36-32\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 62, in __init__
self.service.start()
File "C:\Program Files (x86)\Python36-32\lib\site-packages\selenium\webdriver\common\service.py", line 86, in start
os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'Webdrivers' executable may have wrong permissions. Please see https://sites.google.com/a/chromium.org/chromedriver/home
答案 0 :(得分:18)
错误表明全部 WebDriverException: Message: 'Webdrivers' executable may have wrong permissions.
。
你试过了:
driver = webdriver.Chrome('C:\Webdrivers') # Optional argument, if not specified will search path.
几句话:
在Windows上,如果您明确指定chromedriver
二进制路径,则必须提供二进制扩展名。
在Windows上,在提到chromedriver
二进制路径时,您必须使用单个前斜杠(/)
以及原始(r)
开关,否则您必须使用转义反斜杠(\\)
。
所以该行将是:
driver = webdriver.Chrome(executable_path=r'C:/Utility/BrowserDrivers/chromedriver.exe')
答案 1 :(得分:2)
您只需添加
/chromedriver.exe
如下所示:
driver = webdriver.Chrome('C:/Users/User/Downloads/chromedriver_win32/chromedriver.exe')
注意:如果从“文件资源管理器”复制路径,则会得到:
C:\ Users \ User \ Downloads \ chromedriver_win32
您将需要使用双反斜杠,如下所示:
C:\\ Users \\ User \\ Downloads \\ chromedriver_win32
因此您不会收到语法错误。或者,您可以只使用正斜杠。
答案 2 :(得分:1)
当您输入“chromedriver.exe”的完整文件名时,这已得到解决。如果你在Windows上试试这个
答案 3 :(得分:1)
chmod 755 "/path to chromedriver file"
这对我有帮助
答案 4 :(得分:1)
如果您使用 Mac OS Big Sur 和 Chromedriver 90+,您的 Chromedriver 权限可能会出错。
如果是这种情况,不是您通过“chmod”更改了文件权限,而是禁止执行 Web 驱动程序的 Apple Store 保护。
如果您希望允许在您的 Python 环境中或通过命令行使用此驱动程序,请输入:
`$ sudo xattr -r -d com.apple.quarantine /usr/local/bin/chromedriver`
答案 5 :(得分:1)
如果您使用的是Linux操作系统,则更改文件权限可能可以解决此问题。但要注意您要如何使用权限:
chmod 755 "/path to chromedriver file"
我通过python本身下载了该文件,很遗憾,该文件禁用了执行权限,这是它的快速解决方案。
答案 6 :(得分:1)
在Django中也有同样的问题。
但是,当我在本地运行相同的代码(不激活django应用)时,这很好,并且不必显式定义chrome驱动程序的路径。
通过显式定义路径和chromederiver.exe来解决该问题
类似于上面的答案。 路径=“ C:/用户/您的用户/桌面/chromedriver/chromedriver.exe”
就我而言,由于我最终想发布我的应用程序,因此我使用了动态路径
即。
import os
BASE_oaAPP_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
BASE_oaAPP_Utilities_DIR = os.path.join(BASE_oaAPP_DIR, 'mySubFolderInTheApp')
def utilsPathFileName(fileName):
return os.path.join(BASE_oaAPP_Utilities_DIR, fileName)
chrome_path = utilsPathFileName('chromedriver.exe')
driver = webdriver.Chrome(chrome_path)
答案 7 :(得分:0)
一旦我正确地安装了正确的驱动器,当我错误地安装了驱动器时(当下载了Mac的Windows驱动程序时),我遇到了相同的错误
答案 8 :(得分:0)
您需要在驱动程序路径的末尾添加exe,它才能正常工作。
答案 9 :(得分:0)
找到已安装的driver.exe, Shift +右键单击, 复制为路径, 将其粘贴到您的IDE
答案 10 :(得分:0)
对我来说,以上所有答案均无济于事。但是将chromedriver.exe移到新路径(在我的情况下为台式机)可以解决该问题。
path = "C:/Users/YOUR_USER/Desktop/chromedriver/chromedriver.exe"
答案 11 :(得分:0)
我们可以为 centos
解决此问题#Install package chromedriver. Install it using yum
yum install chromedriver
#Import following package in python.
from selenium import webdriver
#Add following options before initializing the webdriver
chromeOptions = webdriver.ChromeOptions()
chromeOptions.add_argument("--headless")
chromeOptions.add_argument("--remote-debugging-port=9222")
chromeOptions.add_argument('--no-sandbox')
driver = webdriver.Chrome('/usr/bin/chromedriver',chrome_options=chromeOptions)
答案 12 :(得分:0)
如果您在 Windows 计算机上运行它,您还可以将其添加到 Windows PATH(环境变量)中,这样您就不必声明 executable_path
。你可以说:webdriver.Chrome(options=your_options)
答案 13 :(得分:0)
我在 MacO 上遇到了他的错误,在将路径更改为下面给出的路径后,问题解决了。
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')
答案 14 :(得分:0)
如果您使用的是chrome,则必须指定chromedriver的完整路径。 搜索您的chromedriver可执行文件所在的目录。 单击Shift +右键单击可执行文件。 选择“复制为路径”并将其粘贴到脚本中。 别忘了使用双反斜杠
因此应该是:
driver = webdriver.Chrome('C:\\Utility\\BrowserDrivers\\chromedriver.exe')
答案 15 :(得分:0)
之后我一直遇到同样的问题:
这就是解决它的方法: 不要在python路径中给出.exe(只提供路径中的chromedriver)
示例:
select json_object('dept' value b.deptname,
'city' value b.deptcity,
'employees' value json_object('employee name' value a.empname,
'employee salary' value a.salary)
format json) as JSONRETURN
from emp a, dept b where
a.deptno=b.deptno
不幸的是,我仍然无法让我的脚本从 $PATH 变量中读取 chromedriver.exe 路径。如果有人提供帮助,仍然会很感激,尽管这超出了这个问题的范围
答案 16 :(得分:0)
你只需要在路径的末尾添加 /chromedriver.exe 就可以了。 像这样 - \下载\chromedriver_win32\chromedriver.exe
答案 17 :(得分:-2)
os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException:消息:“ chromedriver”可执行文件可能具有错误的权限。请参阅https://sites.google.com/a/chromium.org/chromedriver/home