Skip to main content

AI-powered Selenium IDE (.side) player and builder for Selenium and Playwright

Project description

Side Player (side-builder)

side-player is a next-generation automation tool that bridges the gap between AI-driven intent and rock-solid execution. It allows you to create Selenium IDE (.side) scripts interactively using natural language and execute them anywhere using Playwright or Selenium.


Quick Start

To create and play *.side files with Playwright

Install the package via pip or uv:

pip install side-player   # with pip
uv add side-player        # with uv

Install Playwright

playwright install

To create and play *.side files with Selenium

Install the package via pip or uv:

pip install side-player   # with pip
uv add side-player        # with uv

Configuration

Set the environment variable OPENAI_API_KEY with your ownkey to run side-builder. No API key is required the run the *.side files.

Demo

Demo 1. Generate *.side files and demo1_{sync,async,sel_sync}.py

% side-builder --output demo1
Using OPENAI_API_KEY=sk-proj-OlHCz-hz******************************

[Step 1] AI prompt for browser action [exit]: Go to the home of https://saucedemo.com
Playing: sides\demo1_step_1.side ()
    Success: open https://saucedemo.com
    Save sides\demo1_step_1.side? [Y/n]:

[Step 2] AI prompt for browser action [exit]: Log in
Playing: sides\demo1_step_2.side ()
    Success: open https://www.saucedemo.com/
    Success: type id=user-name
    Success: type id=password
    Success: click id=login-button
    Save sides\demo1_step_2.side? [Y/n]:

[Step 3] AI prompt for browser action [exit]: Log out
Playing: sides\demo1_step_3.side ()
    Success: click id=react-burger-menu-btn
    Success: click id=logout_sidebar_link
    Save sides\demo1_step_3.side? [Y/n]:

[Step 10] AI prompt for browser action [exit]:

Scripts created: demo1_sync.py, demo1_async.py, demo1_sel_sync.py
Side files saved in: sides/

Demo 2. Playing *.side files using Playwright Sync API

% uv run demo1_sync.py
Playing: sides/demo1_step_1.side (Go to the home of https://saucedemo.com)
    Success: open https://saucedemo.com
Playing: sides/demo1_step_2.side (Log in)
    Success: open https://www.saucedemo.com/
    Success: type id=user-name
    Success: type id=password
    Success: click id=login-button
Playing: sides/demo1_step_3.side (Log out)
    Success: click id=react-burger-menu-btn
    Success: click id=logout_sidebar_link
Done.

Demo 3. Playing *.side files using Playwright Async API

% uv run demo1_async.py
Playing (Async): sides/demo1_step_1.side (Go to the home of https://saucedemo.com)
    Success: open https://saucedemo.com
Playing (Async): sides/demo1_step_2.side (Log in)
    Success: open https://www.saucedemo.com/
    Success: type id=user-name
    Success: type id=password
    Success: click id=login-button
Playing (Async): sides/demo1_step_3.side (Log out)
    Success: click id=react-burger-menu-btn
    Success: click id=logout_sidebar_link
Done.

Demo 4. Play *.side files using Selenium

>uv run demo1_sel_sync.py
Playing: sides/demo1_step_1.side (Go to the home of https://saucedemo.com)
    Success: open https://saucedemo.com
Playing: sides/demo1_step_2.side (Log in)
    Success: open https://www.saucedemo.com/
    Success: type id=user-name
    Success: type id=password
    Success: click id=login-button
Playing: sides/demo1_step_3.side (Log out)
    Success: click id=react-burger-menu-btn
    Success: click id=logout_sidebar_link
Done.

Key Features

  • Zero-config Selectors: AI finds the best ID, CSS, or XPath for you automatically.
  • Cost Efficient: Use AI only for recording. Execution is 100% local and free.
  • Standard Format: Generates standard .side files compatible with the Selenium IDE.
  • Developer Friendly: Provides both Sync and Async Playwright APIs.
  • Extensible: Built with a modular structure to support Playwright and Selenium.

Prerequisites

  • Python 3.12+
  • OpenAI API Key (required only for the side-builder recording phase)

License

This project is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

side_builder-0.1.3.tar.gz (46.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

side_builder-0.1.3-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file side_builder-0.1.3.tar.gz.

File metadata

  • Download URL: side_builder-0.1.3.tar.gz
  • Upload date:
  • Size: 46.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for side_builder-0.1.3.tar.gz
Algorithm Hash digest
SHA256 3942155fc6a5642e1e204e10fe719bb5faecf0bdbc6f27c58a3c0bf0800c6d92
MD5 bb6d6fdcca69b008bdecb93e3afb9c60
BLAKE2b-256 e2ab1d2695ac18e6a2b5bf8d84cf5b99857c522ef452a5c1d546844986e9a693

See more details on using hashes here.

File details

Details for the file side_builder-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: side_builder-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for side_builder-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 cb425f4657f71e8d231674104c67ab19ffbdb776f90ca50e92f968a9b1d5c738
MD5 80e595373c05b6af2b1b42d150a270bb
BLAKE2b-256 d5688d972076dd751fd5f4087488cf38f6cb3ab1e9403483a3acc74a27311e54

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page