Browser, Desktop & API automation powered by Chrome DevTools Protocol, Windows UI Automation, and SikuliX — with MCP servers for AI-driven control.
A unified toolkit covering browsers, desktops, APIs, and AI — no WebDriver required.
Direct Chrome DevTools Protocol over WebSocket. Navigate, click, type, screenshot — all without Selenium or WebDriver binaries.
Each test gets its own BrowserContext with separate cookies, storage, and cache — enabling safe parallel execution on a single browser instance.
CDP-based viewport recording to MJPEG AVI. Works in headless mode. Auto-attaches to reports on failure.
JSON-RPC 2.0 stdio servers let AI tools like Claude Desktop and Cursor drive browsers and desktops programmatically.
Windows UI Automation via the MS UIAutomation API (marquee package). Interact with native Win32, WPF, and UWP controls.
SikuliX pattern matching for visual element interaction. Page Object annotation support with @FindPatternBy.
Apache HttpClient wrapper for GET, POST, PUT, DELETE with response parsing. Network interception via CDP's Fetch domain.
Natural-language element finding via Ollama LLM integration. Describe what you want, the AI finds it in the DOM.
Full CRUD operations (insert, find, update, delete, aggregation) with connection pooling, authentication support, and automatic resource management.
JSON (Jackson), Excel (POI), PDF, file ops, checksums, logging (Log4j 2), and ExtentReports / ChainTest integration.
Seven focused packages, each with a clear responsibility.
CDP browser engine, driver, elements, WebSocket client, API interception
Browser & Sikuli MCP stdio servers, tool dispatchers, JSON-RPC
Windows UI Automation driver, windows, elements, rich control helpers
SikuliX actions, screen factory, Page Object annotations
REST API executor and response wrapper
JSON, Excel, PDF, logging, reporting, video recording, MongoDB utilities, and file operations
Sample page objects (Calculator) demonstrating framework usage
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.
// 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();
Extend CdpTestBase and each test automatically gets its own BrowserContext — zero shared state, fully parallel-safe. One browser process, many isolated sessions.
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());
}
}
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.
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();
Connect to MongoDB with automatic credential handling, insert and query documents, leverage aggregation pipelines, and rely on connection pooling for efficient resource management.
// 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();
| Category | Library | Version |
|---|---|---|
| Language | Java | 21 |
| Browser Automation | Chrome DevTools Protocol | Direct WebSocket |
| Desktop Automation | MS UI Automation (mmarquee) | 0.7.0 |
| Image Automation | SikuliX | 2.0.5 |
| HTTP Client | OkHttp | 5.3.2 |
| REST Client | Apache HttpClient | 4.5.14 |
| Database | MongoDB Driver (Sync) | 5.7.0 |
| JSON | Jackson | 2.21.x |
| XML / HTML | dom4j | 2.2.0 |
| Logging | Log4j 2 | 2.25.4 |
| Reporting | ExtentReports + ChainTest | 5.1.2 / 1.0.12 |
| Testing | TestNG | 7.12.0 |
| Build | Maven + GitHub Actions | CI/CD |
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
Java 21+ • Maven 3.8+ • Windows (for desktop features) • Chromium browser (for CDP features)