码头集装箱上的 selenium

rbpvctlc  于 2022-10-04  发布在  Docker
关注(0)|答案(1)|浏览(235)

我有一个简单的javascript文件,它使用Selify启动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();
    }
})();

我做错了什么?如何才能使容器成功运行?

xuo3flqw

xuo3flqw1#

我认为问题出在Selple-WebDriver/Chrome上,因为构建器被我的浏览器卡住了。

相关问题