Why Developers Choose Donobu
Describe intent, not selectors
Withpage.ai(), you write natural language instructions directly in your Playwright tests. Donobu selects the right elements and executes the actions without brittle locators.
Because the SDK layers directly onto Playwright, you can blend intent-driven steps with existing code-based ones. Tests heal themselves as layouts change without disrupting your workflow.
Keep authoring outcomes. Donobu keeps selectors, retries, and context synchronized so your team ships faster.
page.ai("Submit the form with made up data");Create Resilient E2E Tests That Evolve With Your UI
Compare brittle Playwright selectors with Donobu’s layered self-healing and AI-assisted fallbacks.
import { test, expect } from '@playwright/test';
test('Fall theme test', async ({ page }) => {
await page.goto('https://www.starbucks.com/menu');
// Every interaction depends on CSS selectors that break on redesign.
await page.locator('#truste-consent-button').click();
// Click on the "Featured" link
await page.getByRole('link', { name: 'Featured' }).click();
// Verify text content on the page
const expectedText = 'Fall favorites meet new arrivals with a protein boost';
await expect(
page.locator('.content-block_innerContentContainer__oCxU9')
).toHaveText(expectedText);
});import { test } from 'donobu';
test('Test survives modals and popups', async ({ page }) => {
await page.goto('https://www.starbucks.com');
await page.ai('Navigate to the featured drinks menu');
await page.visuallyAssert({
assertionToTestFor:
'The page has an autumn theme.',
});
});Here's How Donobu Works
3-step flow to capture your intent and execute resilient, self-healing tests.
Write human-friendly instructions
Describe the desired action or overall test intent exactly as you would in natural language with your coding assistant.
SDK interprets and maps test flows
Donobu parses intent, chooses the right browser APIs, and keeps selectors in sync behind the scenes.
Execute and enable self-healing
Flows run locally, ready to drop into CI. Self-healing fails over to AI-powered recovery when UIs change. Updating tests with PRs.
Why You Should Choose Donobu
Donobu extends Playwright with AI, keeping what works and removing what breaks — selectors, retries, and flakiness.
Conventional Approach
- Selectors are tightly coupled to the application’s markup.
- Every step must be manually translated into code, making E2E tests slower to write than unit or integration tests.
- Even small UI changes break flows and require constant upkeep.
- Tests usually come late in the dev cycle, after features are “done.”
Testing with Donobu
- Natural-language intent stays stable even when the UI shifts underneath.
- page.ai() interprets plain-English instructions and generates the required selectors. Fixes at runtime on failure.
- Author tests as fast as you can describe them.
- Your flows stay stable even when the UI shifts underneath.
- Because tests aren’t tied to implementation details, you can write them early — even before the UI is final.