The goal of this project is to provide a production-ready Python solution that:
- Solves the RPA Challenge, a popular benchmark for RPA developers. This task involves extracting data from an Excel file and entering it into a web form with randomly placed fields - ten times.
- Is Docker-ready, allowing the solution to run easily across environments.
- Supports both headed mode (for visual debugging) and headless mode (for fast, efficient execution).
** This was created on Windows, so some commands are Windows specific.
- Download Docker if needed: https://www.docker.com/products/docker-desktop/
- Download a VNC viewer if needed. I used Remote Ripple: https://remoteripple.com/download/
- Open Command Prompt
- Navigate to Downloads:
cd %USERPROFILE%\Downloads
- Clone the repository:
git clone https://github.com/bkocsis3/rpa-challenge.git
- Change into the repo folder:
cd rpa-challenge - Build a Docker image using the repo Dockerfile:
docker build -t rpa-challenge .
- Run the new image to create a container:
docker run -d -p 5900:5900 --name rpa-challenge-con rpa-challenge
- Using your VNC viewer, connect to the new container using localhost:5900 & 'secret' as the password
- Execute the Python solution
docker exec rpa-challenge-con python rpa-challenge.py --headtype=headed - Watch the automation in your VNC viewer
- Default command
docker run --name rpa-challenge-con python rpa-challenge.py
or
- Explicit command
docker run --name rpa-challenge-con python rpa-challenge.py --headtype=headless
-
Download Python if needed: https://www.python.org/downloads/
-
Open Command Prompt
-
Navigate to Downloads:
cd %USERPROFILE%\Downloads
-
Create a virtual environment:
py -m venv rpa-challenge-venv
-
Activate the virtual environment:
rpa-challenge-venv\Scripts\activate.bat
-
Install dependancies:
pip install pandas requests selenium openpyxl
py rpa-challenge.py --headtype=headed- Default command
or
py rpa-challenge.py
- Explicit command
py rpa-challenge.py --headtype=headless
- Add error handling to the Python solution
- Add a way to set a new VNC password for better security