【问题标题】:How to set the download directory in docker selenium如何在 docker selenium 中设置下载目录
【发布时间】:2021-09-03 01:57:48
【问题描述】:

我有一个问题。

问题是,我正在用 Python 开发一个项目。该项目是网络抓取。我正在使用硒库。

使用 Selenium 库,我单击一个按钮并下载相关文件(xlsx 等)。 检查以下示例代码:

    driver = webdriver.Remote('http://selenium:4444/wd/hub', desired_capabilities=DesiredCapabilities.CHROME)
    driver.get("link")
    cdate=time.strftime('%Y%m%d')  
    print(cdate)
    while True:
        try:
            wait(driver, 1).until(EC.element_to_be_clickable((By.XPATH, "//span[text()='{}']".format(cdate)))).click()
            print("Found, succes!")
            time.sleep(3)
            break
        except:
            f = '%Y%m%d'
            cdate = (datetime.strptime(cdate, f) - timedelta(days=1)).strftime(f)
            print("Not match")
            time.sleep(3)
            print(str(cdate))

当我尝试 Dockerize 我自己的代码时,它成功了。我用下面的代码进入了相关的地方。我在下面的目录中找到了下载的文件。

docker exec -it <container name> bash
cd /Downloads
ll Sample.xlsx

我需要更改下载目录。当docker容器启动时,我想将它下载到我自己的计算机上。 (像这样:c:\Desktop...)

Docker-Compose.yaml

    version: '3'

services:
    selenium:
        image: selenium/standalone-chrome
        ports: 
        - 4444:4444
        restart: always
    app:
        build:
            context: .
        volumes: 
        - ./app:/app
        command: sh -c "python3 dev2.py"
        depends_on: 
            - selenium 

Dockerfile:

FROM python:3.7-alpine

ENV PYTHONUNBUFFERED 1
ENV DISPLAY=:99

COPY ./requirements.txt /requirements.txt
RUN pip install -r /requirements.txt

RUN mkdir /app
COPY ./app /app
WORKDIR /app

【问题讨论】:

    标签: python docker selenium web-scraping selenium-chromedriver


    【解决方案1】:

    您可以向您的 selenium 容器添加一个卷,该卷将您的主机映射到容器文件夹,以便您的卷如下所示:

    selenium:
        image: selenium/standalone-chrome
        ports: 
        - 4444:4444
        restart: always
        volumes: 
        - /path/to/host/folder:/Downloads
    

    因此,您的容器进程将放入 /Downloads 的所有文件都会出现在您主机的 /path/to/host/folder 中。

    【讨论】:

    • 感谢您的回复,但问题仍然存在。我与您分享以下卷的代码: - ./app:/app - ./currentDownload:/Downloads
    • 更新了我的答案。您需要将卷添加到 Selenium 容器,而不是运行测试的容器。
    • 非常感谢。它成功了。
    猜你喜欢
    • 2013-09-02
    • 2016-04-03
    • 2020-01-28
    • 2020-07-04
    • 2022-11-11
    • 2013-09-01
    • 1970-01-01
    • 2023-03-26
    • 2021-03-31
    相关资源
    最近更新 更多