Pular para o conteúdo
Skillpedia
Testes48 mil · #4097

selenium-skill

Permite que seu agente crie testes automatizados para sites. Ele pode escrever scripts para verificar se tudo funciona em diferentes navegadores.

O que ela faz

Essa ferramenta cria códigos de teste automático para sites. Ela ajuda a verificar se um site está funcionando corretamente, simulando ações de um usuário.

Quando usar

  • ✓Quando você quer testar se um site funciona em vários navegadores.
  • ✓Quando você precisa criar testes automáticos para garantir a qualidade de um site.
  • ✓Quando você quer simular o uso de um site para encontrar erros.

Exemplo do que pedir para a IA

“Crie um teste automático em Java para verificar o login no site X.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/selenium-skill/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/selenium-skill/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Você escolhe a linguagem de programação e onde o teste vai rodar (no seu computador ou na nuvem). A ferramenta gera o código seguindo as melhores práticas para garantir que os testes sejam confiáveis e fáceis de manter.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill selenium-skill

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/selenium-skill/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Habilidade de Automação Selenium

Quando Usar

Use esta habilidade quando precisar gerar scripts e testes de automação Selenium WebDriver de nível de produção em Java, Python, JavaScript, C#, Ruby ou PHP. Suporta execução local e a nuvem TestMu AI com mais de 3000 combinações de navegador/SO. Use quando o usuário pedir para escrever testes Selenium, automatizar com WebDriver, executar...

Você é um arquiteto sênior de automação de QA. Você escreve scripts e testes Selenium WebDriver de nível de produção que rodam localmente ou na nuvem TestMu AI.

Passo 1 — Alvo de Execução

User says "automate" / "test my site"
│
├─ Mentions "cloud", "TestMu", "LambdaTest", "Grid", "cross-browser", "real device"?
│  └─ TestMu AI cloud (RemoteWebDriver)
│
├─ Mentions specific combos (Safari on Windows, old browsers)?
│  └─ Suggest TestMu AI cloud
│
├─ Mentions "locally", "my machine", "ChromeDriver"?
│  └─ Local execution
│
└─ Ambiguous? → Default local, mention cloud for broader coverage

Passo 2 — Detecção de Linguagem

Sinal Linguagem Configuração
Padrão / sem sinal Java Maven + JUnit 5
"Python", "pytest", ".py" Python pip + pytest
"JavaScript", "Node", ".js" JavaScript npm + Mocha/Jest
"C#", ".NET", "NUnit" C# NuGet + NUnit
"Ruby", ".rb", "RSpec" Ruby gem + RSpec
"PHP", "Codeception" PHP Composer + PHPUnit

Para linguagens não-Java → leia reference/<language>-patterns.md

Passo 3 — Escopo

Tipo de Solicitação Ação
"Escrever um teste para X" Arquivo de teste único, configuração inline
"Configurar projeto Selenium" Projeto completo com POM, configuração, classes base
"Corrigir/depurar teste" Leia reference/debugging-common-issues.md
"Executar na nuvem" Leia reference/cloud-integration.md

Padrões Principais — Java (Padrão)

Prioridade do Localizador

1. By.id("element-id")           ← Most stable
2. By.name("field-name")         ← Form elements
3. By.cssSelector(".class")      ← Fast, readable
4. By.xpath("//div[@data-testid]") ← Last resort

NUNCA use: XPaths frágeis como //div[3]/span[2]/a, caminhos absolutos.

Estratégia de Espera — CRÍTICA

// ✅ ALWAYS use explicit waits
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id("submit")));

// ❌ NEVER use Thread.sleep() or implicit waits mixed with explicit
Thread.sleep(3000); // FORBIDDEN
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10)); // Don't mix

Anti-Padrões

Ruim Bom Por quê
Thread.sleep(5000) WebDriverWait explícito Instável, lento
Esperas implícitas + explícitas Apenas esperas explícitas Tempos limite imprevisíveis
driver.findElement() sem espera Esperar e depois encontrar NoSuchElementException
XPath Absoluto CSS/ID Relativo Quebra com mudanças no DOM
Sem driver.quit() Sempre quit() em finally/teardown Vazamentos de navegadores

Estrutura Básica de Teste

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.By;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.junit.jupiter.api.*;
import java.time.Duration;

public class LoginTest {
    private WebDriver driver;
    private WebDriverWait wait;

    @BeforeEach
    void setUp() {
        driver = new ChromeDriver();
        wait = new WebDriverWait(driver, Duration.ofSeconds(10));
        driver.manage().window().maximize();
    }

    @Test
    void testLogin() {
        driver.get("https://example.com/login");
        wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("username")))
            .sendKeys("user@test.com");
        driver.findElement(By.id("password")).sendKeys("password123");
        driver.findElement(By.cssSelector("button[type='submit']")).click();
        wait.until(ExpectedConditions.urlContains("/dashboard"));
        Assertions.assertTrue(driver.getTitle().contains("Dashboard"));
    }

    @AfterEach
    void tearDown() {
        if (driver != null) driver.quit();
    }
}

Modelo de Objeto de Página — Exemplo Rápido

// pages/LoginPage.java
public class LoginPage {
    private WebDriver driver;
    private WebDriverWait wait;

    private By usernameField = By.id("username");
    private By passwordField = By.id("password");
    private By submitButton  = By.cssSelector("button[type='submit']");


…
Perguntas frequentes

O que é Selenium WebDriver?

É uma ferramenta que permite controlar um navegador (como Chrome ou Firefox) através de código, simulando cliques, digitação e outras ações.

O que é 'nuvem' nesse contexto?

É um serviço online que oferece muitos computadores com diferentes navegadores e sistemas operacionais para rodar seus testes, garantindo que o site funcione em diversas combinações.

Por que usar 'waits' (esperas) no código?

Páginas da web carregam em tempos diferentes. Usar esperas garante que o código espere o elemento certo aparecer ou ficar pronto antes de interagir com ele, evitando erros.

Detalhes

Descrição original do autor

Generates production-grade Selenium WebDriver automation scripts and tests in Java, Python, JavaScript, C#, Ruby, or PHP. Supports local execution and TestMu AI cloud with 3000+ browser/OS combinations.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#4097
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas