繁体   English   中英

Docker 容器上的 Selenium

[英]Selenium on a Docker container

我有一个简单的 javascript 文件,它使用 selenium 启动 Chrome,打开一些网站,并从该网站收集一些数据。 现在,我想将该文件放入 Docker 容器中并运行它。

为此,我编写了以下Dockerfile

FROM alpine
RUN apk add --update nodejs npm chromium
COPY . /src
WORKDIR /src
RUN npm install -g chromedriver
RUN npm install
ENTRYPOINT ["node", "index.js"]

图像构建没有错误,但是当我尝试从中运行容器时,我得到:

/src/node_modules/selenium-webdriver/remote/index.js:248
                reject(Error(e.message))
                       ^

Error: Server terminated early with status 1
    at /src/node_modules/selenium-webdriver/remote/index.js:248:24
    at processTicksAndRejections (node:internal/process/task_queues:96:5)

我的 index.js 文件只有一个依赖项 - "selenium-webdriver": "^4.1.1" ,文件本身如下所示:

index.js

const {Builder, By} = require('selenium-webdriver');
(async function example() {
    let driver = await new Builder().forBrowser('chrome').build();
    try {
        // Navigate to Url
        await driver.get('https://www.example.com');

        // Get all the elements available with tag 'p'
        let elements = await driver.findElements(By.css('p'));
        for(let e of elements) {
            console.log(await e.getText());
        }
    }
    finally {
        await driver.quit();
    }
})();

我究竟做错了什么? 如何让容器成功运行?

同样的问题,我认为是与 selenium-webdriver/chrome 因为构建器被卡在了我的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM