Issue with running robot browser tests in CI

I’m seeking advice on running Robot Framework Browser tests in a CI environment. I understand that setting the PLAYWRIGHT_BROWSERS_PATH environment variable for pre-installed browsers is the recommended approach.
As a temporary solution, I’m trying to use rfbrowser init within my Dockerfile to install browsers directly within the container image.
Unfortunately, using rfbrowser init alone results in a different error: Initializing library 'Browser' with no arguments failed: TypeError: Form
My Setup:
I have Python and Node.js installed in my CI environment using: DockerfileRUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash RUN apt install -y nodejs
Questions:

  1. Does rfbrowser init alone suffice for CI?:
  • Is using rfbrowser init to install browsers within the Docker image a viable approach for running tests in CI, or are there additional steps required?
  1. Error Explanation:
  • Can anyone provide insight into the “TypeError: Formatter() takes no arguments” error I’m encountering with rfbrowser init? Is it related to a missing configuration step, or could it be a version incompatibility issue?

Hi there,
i am using the following Dockerfile for development and CI:

FROM mcr.microsoft.com/playwright:v1.44.0-jammy
RUN curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10
RUN pip install robotframework-browser
RUN rfbrowser init

Give it a try and let me know if that worked.

1 Like

Hi,

I did have some struggle setting up browser based docker images from scratch, too. Long time ago, though.

Do you know that there is an official image for browser library? Package robotframework-browser/rfbrowser-stable · GitHub

Since I use it, I don’t have trouble anymore. I use it as base image and install newer python, node and test dependencies on it. Be aware that the container does not run under root but under pwuser.

Regards,
Markus

3 Likes

I found what cause this problem, if someone else face with this issue, here is a topic with solution.