Skip to main content

A Pytest-powered Smart Test Runner CLI tool.

Project description

🤖 nRobo — Next-Gen Test Automation for Selenium (with Playwright Superpowers)

nRobo brings the modern selector engine, autowait magic, and fluent APIs of Playwright, while staying fully compatible with Selenium WebDriver.

It’s built for QA teams who want stability, readability, and zero flakiness — without migrating away from the Selenium ecosystem.


Modern selectors + AutoWait + Collections + Allure reporting + CI-ready packaging. nRobo = Playwright-level power with Selenium-level compatibility.

⭐️ Why nRobo?

Because Selenium is powerful — but outdated.

Because Playwright is modern — but incompatible with Selenium ecosystems.

Because flaky UI tests cost time, money, and reputation.

nRobo solves all three*.

🚀 30-Second Quick Demo

def test_login(page):
    page.selector("text=Login").click()
    page.selector("#email").fill("admin")
    page.selector("#password").fill("secret")
    page.selector("button:has-text('Login')").click()
    page.selector("text=Welcome").should_be_visible()

This works on Selenium, but feels like Playwright.

🔥 nRobo vs Selenium vs Playwright

Capability Selenium Playwright nRobo
AutoWait on all actions
text= selectors
has-text(), has()
Shadow DOM >>> ⚠️
Locator Collections
Chaining: click().fill().should() ✅ (Exclusive)
Selenium WebDriver support

nRobo = Playwright’s power + Selenium’s reach + its own exclusive features

✨ Exclusive Features (Only in nRobo)

1. Locator Action Chaining (Exclusive)

A fluent API inspired by Playwright but designed for Selenium:

page.selector("input").click().locator("#email").fill("admin").should_be_visible()

Mix CSS, XPath, Text, Regex, Pseudo, and Shadow selectors seamlessly.

🔧 Enable/Disable:

settings.ENABLE_LOCATOR_ACTION_CHAINING = True

📄 Full documentation:

➡️ docs/locator_action_chaining.md

2. Advanced Selector Engine (Playwright-level)

Supported:

  • text=Login

  • "Login"

  • regex: /login/i

  • :visible, :enabled, :checked

  • :has() + :has-text()

  • shadow:: pierce selectors

page.selector("form:has(input[name=email]) >> button:visible").click()

3. Autowait Engine (Eliminates 95% Flakiness)

  • Retries

  • Scroll into view

  • Visibility checks

  • Stale element handling

  • WebDriverWait on every action

page.selector("#login").click()  # auto-waits

4. Locator Collections API

rows = page.selector("tr").all()
rows.filter(has_text="Active").first().click()

Supports:

  • .all()

  • .first(), .last(), .nth(i)

  • .filter()

  • .map()

  • set-like operations

6. 🔌 API Testing Support

5. Modern Reporting (HTML + Allure)

  • Automatic screenshots

  • Logs with timestamps

  • Optional built-in Nginx Allure server

📦 Installation

pip install nrobo
nrobo init --app my_project
nrobo

📘 Documentation

All inside the docs/ directory.

🧱 Project Structure

nrobo/
  src/nrobo/
  docs/
  suites/
  tests/

🛠 Developer Guide

black src/ tests/
flake8 src/ tests/
pytest --cov=src/

Pull requests welcome!

MIT License

© 2025 pancht

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

nrobo-2025.5.7.tar.gz (88.9 kB view details)

Uploaded Source

Built Distribution

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

nrobo-2025.5.7-py3-none-any.whl (103.7 kB view details)

Uploaded Python 3

File details

Details for the file nrobo-2025.5.7.tar.gz.

File metadata

  • Download URL: nrobo-2025.5.7.tar.gz
  • Upload date:
  • Size: 88.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for nrobo-2025.5.7.tar.gz
Algorithm Hash digest
SHA256 ac9a53f608f4edfa7de93dc5c122e61fadf53202a077ae146782f8cd47652deb
MD5 4edee98cde58f097122d1facfa47e394
BLAKE2b-256 1c7dee95308a970cc5216c3f8499130408845e053676868f33ba87431dfbfbde

See more details on using hashes here.

File details

Details for the file nrobo-2025.5.7-py3-none-any.whl.

File metadata

  • Download URL: nrobo-2025.5.7-py3-none-any.whl
  • Upload date:
  • Size: 103.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for nrobo-2025.5.7-py3-none-any.whl
Algorithm Hash digest
SHA256 781299da2280969fb69a05730cce4d3eb6b574b01030a60049f1adae47059111
MD5 bd37a149580e56dbcc9775f3c0f01920
BLAKE2b-256 4827b8ba5bf0cd22bc4ae4cdd6d2b02af15a997a13869267dd2588b29364f26e

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