首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在heroku chromedriver buildpack中设置chromedriver的路径

如何在heroku chromedriver buildpack中设置chromedriver的路径
EN

Stack Overflow用户
提问于 2018-02-11 01:11:28
回答 1查看 2.7K关注 0票数 6

我正试着在heroku上设置selenium。我一直在向Running ChromeDriver with Python selenium on Heroku寻求帮助。在此基础上,我安装了列出的2个buildbacks。我使用的是cedar-14,因为不支持16堆栈。

当我运行时:

代码语言:javascript
复制
$ heroku buildpacks
===  Buildpack URLs
1. heroku/python
2. https://github.com/heroku/heroku-buildpack-chromedriver
3. https://github.com/heroku/heroku-buildpack-xvfb-google-chrome

在任何情况下我都想用

代码语言:javascript
复制
https://github.com/heroku/heroku-buildpack-chromedriver/tree/master/bin

我的代码包含:

代码语言:javascript
复制
options = webdriver.ChromeOptions()
CHROMEDRIVER_PATH = os.getenv('$HOME') or basedir+'/chromedriver.exe'
FLASK_CONFIG = os.getenv('FLASK_CONFIG')

if FLASK_CONFIG and FLASK_CONFIG == "production":
    options.binary_location = os.getenv('$GOOGLE_CHROME_SHIM')
    options.add_argument('--disable-gpu')
    options.add_argument('--no-sandbox')

driver = webdriver.Chrome(executable_path=CHROMEDRIVER_PATH, options=options)

这段代码在本地运行良好,但在heroku上运行正常:

代码语言:javascript
复制
 driver = webdriver.Chrome(executable_path=CHROMEDRIVER_PATH, options=options)

2018-02-10T16:37:32.121783+00:00 app[web.1]: selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable may have wrong permissions. Please see https://sites.google.com/a/chromium.org/chromedriver/home

如何在构建包中设置chromedriver的路径?

EN

回答 1

Stack Overflow用户

发布于 2019-06-18 20:11:47

不确定heroku-buildpack-xvfb-google-chrome构建包;我使用heroku/google-chrome

您可以使用此代码段配置您的定义

代码语言:javascript
复制
import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

def load_chrome_driver(proxy):

      options = Options()

      options.binary_location = os.environ.get('GOOGLE_CHROME_BIN')

      options.add_argument('--headless')
      options.add_argument('--disable-gpu')
      options.add_argument('--no-sandbox')
      options.add_argument('--remote-debugging-port=9222')
      options.add_argument('--proxy-server='+proxy)

      return webdriver.Chrome(executable_path=str(os.environ.get('CHROMEDRIVER_PATH')), chrome_options=options)

我使用的是代理,但您可能可以避免这种情况。使用heroku config:set命令设置以下路径

CHROMEDRIVER_PATH=/app/.chromedriver/bin/chromedriverGOOGLE_CHROME_BIN=/app/.apt/usr/bin/google-chrome

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48723397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档