How can I run Selenium tests in a docker container with a visible browser? How can I run Selenium tests in a docker container with a visible browser? selenium selenium

How can I run Selenium tests in a docker container with a visible browser?


Please consider using Zalenium (https://opensource.zalando.com/zalenium/). The headline of Zalenium is - A flexible and scalable container based Selenium Grid with video recording, live preview, basic auth & dashboard.

As mentioned above, you can check the live preview of your test cases running on the browser.

P.S.:- Zalenium is a wrapper built on top of Selenium Grid


Docker

Docker is a software containership platform that provides virtualization from the . In Docker, all software parts are organised as containers which includes the operating system, software, dependencies, environment variables, etc. Containers can be shared among different users, enabling quick installation and running of software and services which makes Docker user-friendly for automation testing, as the relevant container can just be downloaded and run as part of the automated test. Docker is also secure because it runs as an isolated process on the host machine.

It is to be noted that, Docker is isolated, secure and portable. However, there is no GUI and it does not run in bare metal speed.


The prerequisites

  • Python, binded with Selenium WebDriver
  • A testing framework e.g. PyTest, Nose or JUnit.
  • ChromeDriver, GeckoDriver
  • Docker (from the installation location)
  • CI tool, e.g. Jenkins or TeamCity.
  • Optional plugins, e.g. GitHub for the repository connection, Allure for reporting or BlazeMeter for performance testing, etc.

Answering your questions:

  • Do I need to use a remote display viewer such as VNC?: As per the article GUIdock-VNC: using a graphical desktop sharing system to provide a browser-based interface for containerized software Docker can run natively on Linux hosts, while a small Linux VM is necessary to provide the virtualization services on Mac OS and Windows systems. On non-Linux systems, a single Docker container consists of a mini-VM, the Docker software layer, and the software container. But recently, support for OS-level virtualization has been added to Windows and Mac OS. Beta versions of Docker for both Windows and Mac OS are now available that allow Docker to run natively.

  • Is it possible to use a browser on the host?: No, because there is no UI. But then to have a visual view of your test execution you can install X Server Display.

    With that you can see the results:

docker_tests

To view the results in a visual manner you can use the Allure report which looks like:

allure_report

  • Any other option?: There a couple of other options available as well.

Outro

How To Run Selenium WebDriver With Docker?


My conclusion is that the canonical way of doing this is to run X with a lightweight desktop environment such as LXDE on the Docker container. Then you can connect to it with a VNC client. Using a browser on the host is not possible.

For other options, see the other answers.