首页 > 解决方案 > 如何使用 django 将来自 chromedriver 的文件正确保存在 docker 容器中?

问题描述

我正在做 Django + Chrome 独立硒,我无法正确配置下载文件夹。我一直在尝试这样做半天,我从来没有能够解决这样的问题。告诉我怎么做对吗?

我需要 chrome 将文件保存到 django 项目的文件夹中,即在 app/media/uploads

我试图这样做:

chrome:
        image: selenium/standalone-chrome:latest
        container_name: Chrome-selenium
        ports:
            - "4444:4444"
        volumes:
            - ./app:/app
            - media:/app/media
        privileged: true
        shm_size: 2g
        restart: always 

并从命令开始:

    options = webdriver.ChromeOptions()
    options.headless = True
    # User Agent
    options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36 Edg/92.0.902.84')
    # Disable driver mode
    options.add_argument('--disable-blink-features=AutomationControlled')
    
    # Download settings
    download_dir = os.path.join(settings.MEDIA_ROOT, 'uploads') ??

    options.add_experimental_option('prefs', {   
        'download.default_directory': download_dir,
        'download.prompt_for_download': False,
        'download.directory_upgrade': True,
        'safebrowsing_for_trusted_sources_enabled': False,
        'safebrowsing.enabled': False
    })
     
    driver = webdriver.Remote("http://chrome:4444/wd/hub", options=options)

但是从django启动后,没有文件被保存,更准确地说,我不知道它保存在哪里,但绝对不是我指出的地方

标签: pythondjangoselenium

解决方案


推荐阅读