selenium - chromedriver 可执行文件需要在 PATH [重复]

Posted

技术标签:

【中文标题】selenium - chromedriver 可执行文件需要在 PATH [重复]【英文标题】:selenium - chromedriver executable needs to be in PATH [duplicate] 【发布时间】:2017-03-26 03:40:51 【问题描述】:

错误信息:

“chromedriver”可执行文件需要在 PATH 中

我试图在 pycharm 中使用 selenium 编写脚本,但是发生了上述错误。 I have already linked my selenium to pycharm as seen here (fresh and up to date).

我是 selenium 的新手,不是文件夹“selenium”中的 chromedriver。 如果不是,我在哪里可以找到它并将其添加到路径中?

顺便说一句,我尝试在 cmd 中输入“chromedriver”,但是它没有被识别为内部或外部命令。

错误如下:

Traceback (most recent call last):
  File "C:\Users\sebastian\AppData\Local\Programs\Python\Python35-32\lib\site-packages\selenium\webdriver\common\service.py", line 64, in start
    stdout=self.log_file, stderr=self.log_file)
  File "C:\Users\sebastian\AppData\Local\Programs\Python\Python35-32\lib\subprocess.py", line 947, in __init__
    restore_signals, start_new_session)
  File "C:\Users\sebastian\AppData\Local\Programs\Python\Python35-32\lib\subprocess.py", line 1224, in _execute_child
    startupinfo)
PermissionError: [WinError 5] Permission denied

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:/Users/sebastian/PycharmProjects/web/bot.py", line 10, in <module>
    browser = webdriver.Chrome("C:/Users/sebastian/desktop/selenium-3.0.1")
  File "C:\Users\sebastian\AppData\Local\Programs\Python\Python35-32\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 62, in __init__
    self.service.start()
  File "C:\Users\sebastian\AppData\Local\Programs\Python\Python35-32\lib\site-packages\selenium\webdriver\common\service.py", line 76, in start
    os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'selenium-3.0.1' executable may have wrong permissions. Please see https://sites.google.com/a/chromium.org/chromedriver/home

Exception ignored in: <bound method Service.__del__ of <selenium.webdriver.chrome.service.Service object at 0x01EDEAF0>>
Traceback (most recent call last):
  File "C:\Users\sebastian\AppData\Local\Programs\Python\Python35-32\lib\site-packages\selenium\webdriver\common\service.py", line 163, in __del__
    self.stop()
  File "C:\Users\sebastian\AppData\Local\Programs\Python\Python35-32\lib\site-packages\selenium\webdriver\common\service.py", line 135, in stop
    if self.process is None:
AttributeError: 'Service' object has no attribute 'process'

【问题讨论】:

MAC中出现同样的错误,请问如何解决? @Awesome_girl 我想同样的程序,只有你现在必须下载 mac ChromeDriver 版本。 【参考方案1】:

您可以在此处下载 ChromeDriver: https://sites.google.com/chromium.org/driver/

那么你有多个options:

将其添加到您的系统path

把它和你的python脚本放在同一个目录

直接通过executable_path指定位置

 driver = webdriver.Chrome(executable_path='C:/path/to/chromedriver.exe')

【讨论】:

每个浏览器都有/需要自己的驱动程序,Linux 上没有 IE,Windows 上没有 Safari。 Selenium 只是一个工具,可让您与浏览器“对话”。 我将 chromedriver 添加到路径后引发的新错误。你能发现问题是什么吗?它是关于“权限被拒绝”的。如何授予权限? 您是给出了 exe 的完整路径还是只给出了路径?您需要exe文件的位置。如果问题仍然存在,请在此处搜索错误消息,我相信之前有人遇到过同样的问题。 @mkheifetz 您的路径看起来格式不正确,请尝试executable_path='/Users/Misha/chromedriver.exe' 或使用os.path.exists() 检查文件是否存在 @mkheifetz 如果您使用的是 Mac,chromedriver 文件没有文件扩展名,因此应该是“/Users/Misha/chromedriver”。但是尝试将它分配给一个变量,然后检查os.path.exists(chromedriver_path) 是否返回True【参考方案2】:

另一种方法是下载chromedriver并解压,然后将'chromedriver.exe'放在C:\Python27\Scripts中,这样就不需要提供驱动的路径了,

driver= webdriver.Chrome()

会起作用

【讨论】:

"'Service' 对象在 > 的 @Sohail,你能解释一下你的评论吗 fp = webdriver.FirefoxProfile() fp.set_preference("browser.download.folderList",2) fp.set_preference("browser.download.manager.showWhenStarting",False) # fp.set_preference( "browser.download.dir",getcwd()) fp.set_preference("browser.helperApps.neverAsk.saveToDisk","text/csv") self.browser= webdriver.Firefox(firefox_profile=fp)它说 OSError: [Errno 8] 执行格式错误,有时会出现上述情况 @Sohail,您能否将其作为问题提出并粘贴该问题的链接,因为代码在 cmets 中不可读 ***.com/questions/52490692/…【参考方案3】:

试试这个:

pip install webdriver-manager
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())

【讨论】:

我已经运行了上面的代码。但我遇到了一个新错误:JSONDecodeError: Expecting value: line 1 column 1 (char 0) 谢谢!实际上,我正在创建一个 repo 来处理所有操作系统,就像 ChromeDriverManager 一样,然后发现了这个。【参考方案4】:

另一种方法是下载chromedriver并解压,然后将'chromedriver.exe'放在C:\Python27\Scripts中,这样就不需要提供驱动的路径了

driver= webdriver.Chrome()

会起作用

可以证明这也适用于 Python3.7。

【讨论】:

【参考方案5】:

不要在文件路径中包含“.exe”。

例如:

from selenium import webdriver

driver = webdriver.Chrome(executable_path='path/to/folder/chromedriver')

【讨论】:

【参考方案6】:

2020 年的答案。以下代码解决了这个问题。很多刚接触硒的人似乎必须通过这一步。 安装 chromedriver 并将其放在桌面上的文件夹中。还要确保将 selenium python 项目放在与 chrome 驱动程序所在的文件夹相同的文件夹中。

根据您的计算机更改 USER_NAME 和 FOLDER。

适用于 Windows

driver = webdriver.Chrome(r"C:\Users\USER_NAME\Desktop\FOLDER\chromedriver")

适用于 Linux/Mac

driver = webdriver.Chrome("/home/USER_NAME/FOLDER/chromedriver")

【讨论】:

我要加入,在谷歌搜索 Windows 的 fthat 时遇到了这个问题,Chocolately 有 ChromeDriver,它可以更容易地通过简单的命令保持更新:chocolatey.org/install 然后你可以使用 choco install chromedriver 【参考方案7】:

试试这个:

driver = webdriver.Chrome(ChromeDriverManager().install())

【讨论】:

以上是关于selenium - chromedriver 可执行文件需要在 PATH [重复]的主要内容,如果未能解决你的问题,请参考以下文章

selenium.common.exceptions.WebDriverException:消息:“chromedriver”可执行文件需要在 PATH 中

selenium.common.exceptions.WebDriverException:消息:“chromedriver”可执行文件需要在无头 Chrome 的 PATH 错误中

找不到 chromedriver 可执行文件

OSX 修复 Selenium Chromedriver 启动错误产生未知系统错误 -86 可执行文件中的错误 CPU 类型?

线程“main”java.lang.IllegalStateException中的异常:驱动程序可执行文件必须存在使用Selenium ChromeDriver和Java的错误[重复]

Selenium ChromeDriver与Chrome版本映射表(更新到v78)