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

Ash*_*h1x 14 python selenium google-chrome selenium-chromedriver selenium-webdriver

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

我一直在尝试使用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()
Run Code Online (Sandbox Code Playgroud)

错误:

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
Run Code Online (Sandbox Code Playgroud)

Deb*_*anB 25

错误说明了一切WebDriverException: Message: 'Webdrivers' executable may have wrong permissions..

你试过了:

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

几句话:

  1. 在Windows上,如果要显式指定chromedriver二进制路径,则必须将其与二进制扩展一起提供.

  2. 在Windows上,虽然提到chromedriver二进制路径,但您必须使用单个前斜杠(/)和原始(r)开关,或者必须使用转义的反斜杠(\\).

  3. 所以该行将是:

    driver = webdriver.Chrome(executable_path=r'C:/Utility/BrowserDrivers/chromedriver.exe')
    
    Run Code Online (Sandbox Code Playgroud)

  • 在 Windows 10 和 python 3.7.1 上,我不需要原始 (r) 开关。也不需要 'executable_path=' 不完全确定为什么,下面的链接表明 os.path.normpath 纠正了这一点。这种做法可能已包含在 webdriver.Chrome() https://pythonconquerstheuniverse.wordpress.com/2008/06/04/gotcha-%E2%80%94-backslashes-in-windows-filenames/ (3认同)

小智 17

当您输入完整的文件名“chromedriver.exe”时,这个问题就解决了。如果你在 Windows 上试试这个

  • Ubuntu呢? (7认同)
  • @Mostafa chromedriver,没有.exe (2认同)

小智 7

如果您使用的是 Linux 操作系统,更改文件权限可能会解决该问题。但请注意您对权限的操作:

chmod 755 "/path to chromedriver file"
Run Code Online (Sandbox Code Playgroud)

我通过 python 本身下载了该文件,不幸的是,它禁用了执行权限,这是它的快速修复方法。


小智 6

你只需要添加

/chromedriver.exe

在路径的尽头是这样的:

driver = webdriver.Chrome('C:/Users/User/Downloads/chromedriver_win32/chromedriver.exe')

注意:如果您从“文件资源管理器”复制路径,您将获得:

C:\用户\用户\下载\chromedriver_win32

您将需要像这样使用双反斜杠:

C:\\用户\\用户\\下载\\chromedriver_win32

所以你不会收到语法错误。或者你可以只使用正斜杠。