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
Mensagem pronta para colar
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-skillOu 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.mdConteú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.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #4097
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
cpp-testing
Faz seu agente escrever e melhorar testes para código C++. Ajuda a configurar ferramentas de teste e a corrigir erros.
affaan-m/ECC
csharp-testing
Ajuda seu agente a criar testes para código C# e .NET. Ele usa as melhores práticas para garantir que os testes sejam eficientes e confiáveis.
affaan-m/ECC
django-tdd
Faz seu agente aplicar estratégias de teste para Django com pytest-django e TDD. É útil para escrever testes robustos e garantir a qualidade do código, especialmente para APIs DRF.
affaan-m/ECC