'Webdrivers'可执行文件可能具有错误的权限。请参阅https://sites.google.com/a/chromium.org/chromedriver/home

时间:2017-11-07 02:06:21

标签: python google-chrome selenium selenium-webdriver selenium-chromedriver

我环顾四周检查了两份文件并找不到答案。

我一直在尝试将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

18 个答案:

答案 0 :(得分:18)

错误表明全部 WebDriverException: Message: 'Webdrivers' executable may have wrong permissions.

你试过了:

driver = webdriver.Chrome('C:\Webdrivers')  # Optional argument, if not specified will search path.

几句话:

  1. 在Windows上,如果您明确指定chromedriver二进制路径,则必须提供二进制扩展名。

  2. 在Windows上,在提到chromedriver二进制路径时,您必须使用单个前斜杠(/)以及原始(r)开关,否则您必须使用转义反斜杠(\\)

  3. 所以该行将是:

    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)

之后我一直遇到同样的问题:

  • 我的脚本无法识别 $PATH 中的 chromdriver.exe(是的,它在那里)
  • 授予exe运行权限
  • 将“path/to/chromedriver.exe”传递给 Chrome()

这就是解决它的方法: 不要在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