Stop reinventing the wheel. Write your tests once and run them everywhere β across browsers, devices, and APIs β with a single, fluent Java framework.
SHAFT Engine is an open-source Java test automation framework built on top of Selenium, Appium, and REST Assured. It provides a unified, fluent API for cross-browser testing, mobile app testing, API testing, CLI testing, and database testing β so you can automate anything, from any platform, with zero boilerplate.
Fully Documented
|
Award Winning
|
Selenium Ecosystem
|
- π Why SHAFT?
- π‘ See the Difference
- β‘ Quick Start
- β¨ Key Features
- π Success Partners
- π Documentation
- π€ Community & Support
- π Sponsor
- π License
If you're tired of managing a fragile patchwork of Selenium helpers, custom wrappers, and retry logic β you're not alone. SHAFT Engine replaces all of that with a single, battle-tested framework trusted by 41,000+ engineers across 10+ countries.
Built on industry-standard technologies β Selenium, Appium, and REST Assured β SHAFT gives you a fluent, chainable API that works across web browsers, mobile apps, REST APIs, databases, and CLIs. No more boilerplate. No more flaky tests. Just results.
| Feature | What You Get |
|---|---|
| π― Unified API | One fluent syntax for Web, Mobile, API, CLI, and Database testing |
| π§ Zero Boilerplate | Smart auto-configuration β no WebDriverManager, no manual waits, no setup code |
| π Rich Reporting | Built-in Allure integration with screenshots, videos, and detailed logs |
| π€ AI-Powered Validation | Visual testing with OpenCV and intelligent element detection |
| π Cloud-Ready | Native support for BrowserStack, LambdaTest, and Selenium Grid |
| βοΈ Any Test Runner | Works with TestNG, JUnit 5, and Cucumber out of the box |
| π³ Containerized | Ready-to-use Docker support for CI/CD pipelines |
| π± Full Mobile | Native, Hybrid, and Flutter apps on Android & iOS via Appium |
41,511 active users across 10+ countries trust SHAFT for their test automation needs β from startups to Fortune 500 companies.
Stop writing dozens of lines of brittle Selenium boilerplate. Here's what SHAFT looks like compared to raw Selenium:
|
β Raw Selenium (verbose & fragile) |
β SHAFT Engine (clean & reliable) |
WebDriver driver = new ChromeDriver();
driver.get("https://example.com");
WebDriverWait wait =
new WebDriverWait(driver, Duration.ofSeconds(10));
WebElement el = wait.until(
ExpectedConditions.visibilityOfElementLocated(
By.name("q")));
el.sendKeys("SHAFT");
el.sendKeys(Keys.ENTER);
String title = driver.getTitle();
Assert.assertTrue(title.contains("SHAFT"));
driver.quit(); |
SHAFT.GUI.WebDriver driver =
new SHAFT.GUI.WebDriver();
driver.browser().navigateToURL("https://example.com")
.and().element().type(By.name("q"),
"SHAFT" + Keys.ENTER)
.and().assertThat().browser().title()
.contains("SHAFT");
driver.quit(); |
Fewer lines. Automatic synchronization. Built-in assertions. Beautiful reports. That's SHAFT.
Get up and running in under 5 minutes!
The fastest way to create a new SHAFT project with a user-friendly web UI:
Choose your test runner (TestNG / JUnit 5 / Cucumber), select your platform (Web / Mobile / API), and download a ready-to-use project β complete with CI/CD configuration.
Create a new project from the command line:
mvn archetype:generate \
-DarchetypeGroupId=io.github.shafthq \
-DarchetypeArtifactId=shaft-archetypeMaven β add to your pom.xml
<dependency>
<groupId>io.github.shafthq</groupId>
<artifactId>SHAFT_ENGINE</artifactId>
<!-- Get the latest version from Maven Central β -->
<version><!-- SEE BADGE BELOW --></version>
</dependency>Gradle (Kotlin DSL) β add to your build.gradle.kts
dependencies {
// Get the latest version from Maven Central β
testImplementation("io.github.shafthq:SHAFT_ENGINE:<version>")
}import com.shaft.driver.SHAFT;
import org.openqa.selenium.By;
import org.testng.annotations.*;
public class QuickStartTest {
SHAFT.GUI.WebDriver driver;
@BeforeMethod
public void setup() {
driver = new SHAFT.GUI.WebDriver();
}
@Test
public void searchTest() {
driver.browser().navigateToURL("https://duckduckgo.com/")
.and().element().type(By.name("q"), "SHAFT_Engine")
.and().element().click(By.cssSelector("button[type='submit']"))
.and().assertThat().browser().title().contains("SHAFT_Engine");
}
@AfterMethod(alwaysRun = true)
public void teardown() {
driver.quit();
}
}π Complete Quick Start Guide β β includes TestNG, JUnit 5, and Cucumber examples.
| π Scalability | π― Reliability | π§ Maintainability |
|---|---|---|
| CI/CD Integration | Auto-Synchronization | Fluent Design |
| Cloud Execution | Rich Reporting | Smart Locators |
| Parallel Testing | Video Recording | AI Validations |
| Containerization | Screenshot Capture | Zero Boilerplate |
| Category | Supported |
|---|---|
| Browsers | Chrome, Edge, Firefox, Safari (Desktop & Mobile) |
| Mobile Apps | Native, Hybrid, Flutter (Android & iOS) |
| APIs | REST (GET, POST, PUT, PATCH, DELETE) with full response validation |
| Databases | MySQL, SQL Server, PostgreSQL, Oracle, IBM DB2, H2, MongoDB |
| Other | CLI / Terminal, File Assertions (JSON, YAML, Excel, PDF, CSV) |
| Test Runners | TestNG, JUnit 5, Cucumber BDD |
π Complete Feature List β Β· Tech Stack β Β· Architecture β
| Resource | Description |
|---|---|
| π User Guide | Comprehensive documentation, tutorials, and configuration reference |
| ποΈ Architecture | Framework design, module overview, and Mermaid diagrams |
| π οΈ Tech Stack | Technologies and libraries powering SHAFT |
| β¨ Features | Full feature list with platform compatibility matrix |
| π User Analytics | Global adoption, geographic breakdown, and growth metrics |
Explore SHAFT Engine on Google Code Wiki β
Browse, search, and understand the SHAFT Engine codebase using Google Code Wiki β Google's AI-powered code exploration tool. Ask questions about the code, navigate complex implementations, and get intelligent explanations of framework internals.
We love contributions from the community! Here's how you can get involved:
- π Report a bug β found something broken? Let us know
- π‘ Request a feature β have an idea? We'd love to hear it
- π Submit a pull request β jump right in and help build SHAFT
Read our Contributing Guidelines and Code of Conduct to get started.
If SHAFT has saved you time or helped your team ship faster, please consider giving us a star. It helps others discover the project and motivates the team to keep improving it.
SHAFT Engine is free and open source, built with love by a dedicated community. If you or your organization benefit from SHAFT, consider sponsoring the project to help ensure its long-term sustainability.
SHAFT Engine is released under the MIT License β free to use, modify, and distribute in personal and commercial projects.




