Java 21 • Open Source

Automate Everything
From One Framework

Browser, Desktop & API automation powered by Chrome DevTools Protocol, Windows UI Automation, and SikuliX — with MCP servers for AI-driven control.

7
Packages
30+
Classes
0
WebDriver Needed
2
MCP Servers

Everything You Need to Automate

A unified toolkit covering browsers, desktops, APIs, and AI — no WebDriver required.

🌐

Browser Automation (CDP)

Direct Chrome DevTools Protocol over WebSocket. Navigate, click, type, screenshot — all without Selenium or WebDriver binaries.

🧩

Isolated Browser Contexts

Each test gets its own BrowserContext with separate cookies, storage, and cache — enabling safe parallel execution on a single browser instance.

🎥

Video Recording

CDP-based viewport recording to MJPEG AVI. Works in headless mode. Auto-attaches to reports on failure.

🤖

MCP Servers

JSON-RPC 2.0 stdio servers let AI tools like Claude Desktop and Cursor drive browsers and desktops programmatically.

🖥️

Desktop Automation

Windows UI Automation via the MS UIAutomation API (marquee package). Interact with native Win32, WPF, and UWP controls.

👁️

Image-Based Automation

SikuliX pattern matching for visual element interaction. Page Object annotation support with @FindPatternBy.

🔗

REST API Client

Apache HttpClient wrapper for GET, POST, PUT, DELETE with response parsing. Network interception via CDP's Fetch domain.

🧠

AI-Powered Locators

Natural-language element finding via Ollama LLM integration. Describe what you want, the AI finds it in the DOM.

🗄️

MongoDB Integration

Full CRUD operations (insert, find, update, delete, aggregation) with connection pooling, authentication support, and automatic resource management.

🛠️

Rich Utilities

JSON (Jackson), Excel (POI), PDF, file ops, checksums, logging (Log4j 2), and ExtentReports / ChainTest integration.

Modular Package Design

Seven focused packages, each with a clear responsibility.

🌐

cdphandler

CDP browser engine, driver, elements, WebSocket client, API interception

🤖

mcp

Browser & Sikuli MCP stdio servers, tool dispatchers, JSON-RPC

🖥️

marquee

Windows UI Automation driver, windows, elements, rich control helpers

👁️

sikuli

SikuliX actions, screen factory, Page Object annotations

🔗

apachehttpclient

REST API executor and response wrapper

🛠️

tools

JSON, Excel, PDF, logging, reporting, video recording, MongoDB utilities, and file operations

📱

apps

Sample page objects (Calculator) demonstrating framework usage

Up and Running in Minutes

🌐 Zero-Config Browser Automation

Launch Chrome automatically and get a ready-to-use driver. No WebDriver binary downloads, no path configuration — just call launchAndConnect() and start automating.

Wheel3 auto-discovers Chrome or Edge on your system, launches it with remote debugging on a free port, and returns a fully initialized driver.

BrowserTest.java
// Launch Chrome automatically
ICdpDriver driver = CdpHandler.launchAndConnect();
driver.get("https://google.com");

// Find and interact with elements
ICdpElement searchBox = driver.findElement(
    CdpBy.cssSelector("input[name='q']")
);
searchBox.sendKeys("Wheel3 automation");

// Take a screenshot
String base64 = driver.captureScreenshot();

driver.close();

⚡ Parallel Testing with Isolation

Extend CdpTestBase and each test automatically gets its own BrowserContext — zero shared state, fully parallel-safe. One browser process, many isolated sessions.

MyTest.java
public class MyTest extends CdpTestBase {
    @Test
    public void testIsolated() {
        getDriver().get("https://example.com");
        ICdpElement heading =
            getDriver().findElement(
                CdpBy.cssSelector("h1")
            );
        Assert.assertNotNull(heading.getText());
    }
}

🖥️ Desktop Automation

Control native Windows applications using the MS UI Automation API. Find windows by title, interact with controls by automation ID, class name, or name — supports all standard Win32/WPF/UWP controls.

DesktopTest.java
MarqueeDriver desktop =
    MarqueeDriver.getInstance();
MarqueeWindow notepad =
    desktop.getWindow("Untitled - Notepad");

MarqueeBy editArea =
    MarqueeBy.ByAutomationId("edit", "15");
MarqueeElement editor =
    notepad.findElement(editArea);
editor.setEditBoxValue("Hello from Wheel3!");

notepad.maximizeWindow();
notepad.closeWindow();

🗄️ MongoDB CRUD Operations

Connect to MongoDB with automatic credential handling, insert and query documents, leverage aggregation pipelines, and rely on connection pooling for efficient resource management.

MongoDBTest.java
// Connect to MongoDB
MongoDBUtilities mongo = new MongoDBUtilities(
    "mongodb://localhost:27017"
);

// Insert a document
mongo.insertOne("myDb", "users",
    Map.of("name", "Alice", "age", 30)
);

// Query documents
List<Document> results = mongo.find(
    "myDb", "users",
    Filters.eq("age", 30)
);

// Update and close
mongo.updateOne("myDb", "users",
    Filters.eq("name", "Alice"),
    Updates.set("age", 31)
);
mongo.close();

Built on Proven Technologies

CategoryLibraryVersion
LanguageJava21
Browser AutomationChrome DevTools ProtocolDirect WebSocket
Desktop AutomationMS UI Automation (mmarquee)0.7.0
Image AutomationSikuliX2.0.5
HTTP ClientOkHttp5.3.2
REST ClientApache HttpClient4.5.14
DatabaseMongoDB Driver (Sync)5.7.0
JSONJackson2.21.x
XML / HTMLdom4j2.2.0
LoggingLog4j 22.25.4
ReportingExtentReports + ChainTest5.1.2 / 1.0.12
TestingTestNG7.12.0
BuildMaven + GitHub ActionsCI/CD

Get Started Now

Install from GitHub Packages or build from source.

<repositories>
  <repository>
    <id>github</id>
    <url>https://maven.pkg.github.com/aji4032/Wheel3</url>
  </repository>
</repositories>

<dependencies>
  <dependency>
    <groupId>io.github.aji4032</groupId>
    <artifactId>Wheel3</artifactId>
    <version>LATEST</version>
  </dependency>
</dependencies>
git clone https://github.com/aji4032/Wheel3.git
cd Wheel3
mvn clean package

Requirements

Java 21+Maven 3.8+Windows (for desktop features) • Chromium browser (for CDP features)