Skip to main content

What is Kolibrium?

Kolibrium is a Kotlin-first library that wraps both Selenium and Appium with a unified, type-safe API.

Selenium and Appium tests in JVM projects tend to be verbose, error-prone, and diverge in patterns - browser tests look nothing like mobile tests, waits are bolted on as an afterthought, and page/screen objects require significant boilerplate. Kolibrium addresses this with:

  • One mental model for browser and mobile. seleniumTest {} and androidTest {} / iosTest {} share the same three-phase lifecycle (setUpblocktearDown), the same Page/Screen Object pattern, and the same locator delegate system. An engineer who knows one module knows the other.
  • Compile-time safety over runtime discovery. Element locators are property delegates with typed strategies - misconfigured locators, invalid wait configs, and wrong argument formats are caught at compile time, not when a test flakes at 2 AM.
  • DSL-driven configuration. Browser options, arguments, waits, and driver creation are configured through Kotlin DSLs with sensible defaults. No builder chains, no stringly-typed option maps.
  • Smart waits built into locators. Every element lookup has configurable polling and timeout via WaitConfig presets (Default, Quick, Patient) or custom configs - no separate WebDriverWait ceremony.
  • Composable decorator framework. Cross-cutting concerns like element highlighting, slow-motion execution, logging, and state caching are decorators that compose transparently over any SearchContext.

Kolibrium uses modern Kotlin features where they reduce friction - context parameters, sealed hierarchies, value classes - while keeping the call-site API simple enough that Java-background engineers read it at a glance.

Modules

  • selenium: Core WebDriver functionality including Page Object base classes, the seleniumTest harness, element locator delegates, and an extensible decorator framework
  • appium: Appium-based mobile testing with Screen abstractions, locator delegates, and capabilities configuration for Android and iOS