gpt4 book ai didi

node.js - 在 headless 容器中使用 Electron 运行 testcafe

转载 作者:行者123 更新时间:2023-12-02 18:18:02 24 4
gpt4 key购买 nike

我正在尝试在 debian docker 容器上以 headless 模式使用 testcafe-browser-provider-electron 运行 testcafe。

我不断得到

testcafe:browser-provider-electron:spawn:stderr [122:0520/185130.933152:FATAL:atom_main_delegate.cc(211)] Running as root without --no-sandbox is not supported. 
See https://crbug.com/63818ERROR Was unable to open the browser "electron:./app" due to error.

我尝试过在 npx 以及通过本地安装的 testcafe 运行。

Dockerfile
FROM node:13.4.0-buster AS builder

ENV DEBIAN_FRONTEND noninteractive

# Python dependencies in some npm modules
RUN apt-get update && \
apt-get install -y -q curl && \
apt-get install -y xvfb x11-xkb-utils xfonts-100dpi \
xfonts-75dpi xfonts-scalable xfonts-cyrillic x11-apps clang \
libdbus-1-dev libgtk2.0-dev libnotify-dev \
libgconf2-dev libasound2-dev libcap-dev libcups2-dev libxtst-dev \
libxss1 libnss3-dev gcc-multilib g++-multilib && \
apt-get remove -y cmdtest

RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
apt-get update

RUN apt-get install yarn git git-lfs -y && \
apt-get install --fix-missing -y xvfb

# Create directory for the application
WORKDIR /app

.... Load my stuff

# Docker base image is already NODE_ENV=production
RUN npm i -g testcafe && \
yarn

# Build the tests
RUN yarn build-e2e
RUN export NODE_ENV=development && \
export DEBUG=testcafe:*,electron:* && \
xvfb-run -e /dev/stdout -s '-screen 0 1024x768x24' testcafe electron:./app

我也升级到了最新的 testcafe npm 模块
    "testcafe": "^1.8.5",
"testcafe-browser-provider-electron": "^0.0.15-alpha.1",
"testcafe-live":"^0.1.4",
"testcafe-react-selectors": "^4.0.0",

.testcaferc.json
{
"src": "./test/e2e/*.js",
"reporter": {
"name": "xunit",
"output": "./reports/report.xml"
},
"screenshots": {
"takeOnFails": true,
"path": "./test/e2e/screenshots"
}
}

.tstcafe-electron-rc.json
{
"mainWindowUrl": "./app/app.html",
"appPath": "./app"
}

没有 headless 一切都可以正常工作。

我尝试插入 --no-sandbox在有和没有 xvfb 的几个地方混入其中。

最佳答案

此错误表示您正在尝试在 root 帐户下运行 chrome:headless。尝试将 "appArgs": "--no-sandbox"选项添加到 .testcafe-electron-rc.json 文件中。

作为另一种方法,您可以将非 root 用户添加到容器中并在运行测试之前切换到它:
https://github.com/DevExpress/testcafe/blob/fc3fe6d527df9b72831133134fb800729f7d3741/docker/Dockerfile#L23

关于node.js - 在 headless 容器中使用 Electron 运行 testcafe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61920843/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com