Chromedriver错误:[Errno13]权限被拒绝' chromedriver / chromedriver.exe'

时间:2017-12-25 19:09:35

标签: python selenium heroku flask

我有一个使用Flask的应用程序,它使用Selenium和Chrome webdriver来刮网。当我在本地进行测试时,它可以完美运行。但是,我尝试部署到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:我还在proc文件chmod +x chromedriver/chromedriver中添加了一个release命令。仍然无法工作。

1 个答案:

答案 0 :(得分:0)

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

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