# Selenide Skill

> Generates Selenide tests in Java. Concise UI testing framework built on Selenium with automatic waits and fluent API. Use when user mentions "Selenide", "$(selector)", "shouldBe(visible)", "Selenide Java". Triggers on: "Selenide", "$() selector", "shouldBe", "shouldHave", "Selenide test".

- Skill: `lambdatest/selenide-skill` (Agent Skill)
- Install (CLI): `npx skillmds@latest add lambdatest/selenide-skill`
- Raw SKILL.md: https://api.skillmd.com/api/skills/lambdatest/selenide-skill/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- License: MIT
- Author: LambdaTest (https://skillmd.com/u/lambdatest)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/lambdatest/selenide-skill

---


# Selenide Automation Skill

## Core Patterns

### Basic Test

```java
import com.codeborne.selenide.*;
import static com.codeborne.selenide.Selenide.*;
import static com.codeborne.selenide.Condition.*;
import org.junit.jupiter.api.Test;

class LoginTest {
    @Test
    void loginWithValidCredentials() {
        open("/login");
        $("#email").setValue("user@test.com");
        $("#password").setValue("password123");
        $("button[type='submit']").click();
        $(".dashboard").shouldBe(visible);
        $(".welcome").shouldHave(text("Welcome"));
    }

    @Test
    void loginShowsError() {
        open("/login");
        $("#email").setValue("wrong@test.com");
        $("#password").setValue("wrong");
        $("button[type='submit']").click();
        $(".error").shouldBe(visible).shouldHave(text("Invalid"));
    }
}
```

### Selectors

```java
$("css-selector")                     // CSS
$(byText("Login"))                    // Exact text
$(withText("Welc"))                   // Contains text
$(byId("email"))                      // By ID
$(byName("password"))                 // By name
$(byXpath("//button"))                // XPath (avoid)
$("[data-testid='login-btn']")        // data attribute (best)

// Collections
$$("li").shouldHave(size(5));
$$("li").first().shouldHave(text("Item 1"));
$$("li").filterBy(text("Active")).shouldHave(size(2));
```

### Conditions

```java
element.shouldBe(visible);
element.shouldBe(hidden);
element.shouldBe(enabled);
element.shouldBe(disabled);
element.shouldHave(text("expected"));
element.shouldHave(exactText("Exact Match"));
element.shouldHave(value("input value"));
element.shouldHave(attribute("href", "/link"));
element.shouldHave(cssClass("active"));
element.shouldNot(exist);
```

### TestMu AI Cloud

```java
Configuration.remote = "https://" + LT_USERNAME + ":" + LT_ACCESS_KEY
    + "@hub.lambdatest.com/wd/hub";
Configuration.browserCapabilities = new DesiredCapabilities();
Configuration.browserCapabilities.setCapability("browserName", "chrome");
Configuration.browserCapabilities.setCapability("LT:Options", Map.of(
    "build", "Selenide Build", "name", "Login Test",
    "platform", "Windows 11", "video", true
));
```

## Setup: Maven `com.codeborne:selenide:7.0.0`
## Run: `mvn test` (auto-downloads browser driver)

For TestMu AI cloud execution, see [reference/cloud-integration.md](reference/cloud-integration.md) and [shared/testmu-cloud-reference.md](../shared/testmu-cloud-reference.md).

## Deep Patterns

For advanced patterns, debugging guides, CI/CD integration, and best practices,
see `reference/playbook.md`.

