【问题标题】:Chromedriver error: [Errno13] Permission denied 'chromedriver/chromedriver.exe'Chromedriver 错误:[Errno13] Permission denied 'chromedriver/chromedriver.exe'
【发布时间】:2017-12-25 19:09:34
【问题描述】:

我有一个带有 Flask 的应用程序,它使用 Selenium 和 Chrome 网络驱动程序来抓取网络。当我在本地测试它时,它可以完美运行。但是,我尝试部署到 Heroku 并不断收到以下两个错误:

PermissionError: [Errno13] Permission denied 'chromedriver/chromedriver.exe' 

selenium.common.exceptions.WebDriverException: Message: 'chromedriver.exe' executable may have wrong permissions. Please see https://sites.google.com/a/chromium.org/chromedriver/home

这是我引用 chromedriver 的代码部分。

options = webdriver.ChromeOptions()
options.add_argument('headless')

browser = webdriver.Chrome(executable_path="chromedriver/chromedriver.exe", chrome_options=options)
browser.get('https://sis.pleasantonusd.net/StudentPortal')

文件chromedriver.exe 位于文件夹chromedriver 中,该文件夹与文件GradeScraper.py(带有Selenium 代码的文件)处于同一级别。目录结构如下:

QC-Scraper
|- app.py
|- GradeScraper.py
|- Procfile
|- requirements.txt
|- README.md
|- chromedriver
    |- chromedriver.exe
|- templates
    |- grades.html

在结构中,app.py 是主要的 Flask 应用程序,其中调用了 app.run() 函数。 GradeScraper.py是实际抓取码的部分,导入到app.py。 我会尽力提供任何必要的额外信息。非常感谢您的帮助!

提前致谢!

编辑:我将 Windows chromedriver 更改为 Linux chromedriver 并部署它,错误仍然存​​在。

EDIT2:我还在 procfile 中添加了一个释放命令,chmod +x chromedriver/chromedriver。还是不行。

【问题讨论】:

  • chromedriver.exe的访问权限是什么?
  • 你能澄清一下吗?我不明白。
  • 如果有帮助的话,我是我电脑上的管理员。
  • 没关系,这取决于您运行程序的用户身份。例如,通常守护程序在不同的用户上运行,以防止已经获得对某个文件的访问权限的黑客访问所有文件。

标签: python selenium heroku flask


【解决方案1】:

它告诉你chromedriver.exe 没有设置可执行位。

但我认为这并不重要,因为您尝试在 Linux 机器上运行 Windows 程序 (.exe),这就是 Heroku。

【讨论】:

  • 那么,我应该下载某种适用于 linux 的 chromedriver 吗?
  • 我下载了Linux chromedriver并添加了它,错误仍然存​​在。不过,感谢您的帮助!
  • 你发现了吗,我也遇到了同样的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 2020-08-19
  • 2018-11-24
  • 1970-01-01
  • 1970-01-01
  • 2021-01-10
  • 1970-01-01
相关资源
最近更新 更多