关于 selenium
用于编写和维护 Selenium WebDriver 浏览器自动化测试的技能,涵盖元素定位、等待机制、无头执行、多浏览器测试与 CI 流程。
主要功能
- 01WebDriver 测试脚本编写
- 02CSS、ID 和相对定位器
- 03显式等待指导
- 04无头模式与 Grid 执行
- 05CI/CD 测试流程指导
适用场景
- 01自动化浏览器测试
- 02用显式等待减少测试不稳定
- 03在 CI 或 Selenium Grid 中运行测试
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ partme-ai/ full-stack-skills --skill selenium安装后在 Claude Code 中输入/selenium确认已加载。
附带文件LICENSE.txt
详细介绍
适用场景
当用户希望进行以下操作时,使用此技能:
- 使用 Selenium WebDriver 编写或维护浏览器自动化测试
- 使用 CSS 选择器、ID 或相对定位器查找元素
- 实现显式等待和隐式等待,确保测试稳定运行
- 在无头模式下运行测试,或通过 Selenium Grid 跨浏览器运行测试
- 将 Selenium 测试集成到 CI/CD 流水线中
如何使用此技能
工作流
- 设置环境:安装浏览器驱动(ChromeDriver/GeckoDriver),或使用 Selenium 4 Manager
- 编写测试脚本:导航、查找元素、交互并断言
- 添加等待和错误处理:使用显式等待,而不是
sleep - 在 CI 中运行:配置无头模式或 Grid;生成报告
1. 基本测试(Python)
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("https://example.com/login")
# Explicit wait for element
wait = WebDriverWait(driver, 10)
username = wait.until(EC.presence_of_element_located((By.ID, "username")))
username.send_keys("testuser")
driver.find_element(By.ID, "password").send_keys("secret")
driver.find_element(By.CSS_SELECTOR, "button[type='submit']").click()
# Assert login success
assert "Dashboard" in driver.title
driver.quit()
2. 基本测试(Java)
WebDriver driver = new ChromeDriver();
driver.get("https://example.com/login");
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
WebElement username = wait.until(ExpectedConditions.presenceOfElementLocated(By.id("username")));
username.sendKeys("testuser");
driver.findElement(By.id("password")).sendKeys("secret");
driver.findElement(By.cssSelector("button[type='submit']")).click();
assertTrue(driver.getTitle().contains("Dashboard"));
driver.quit();
3. 无头模式
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("--headless")
options.add_argument("--no-sandbox")
driver = webdriver.Chrome(options=options)
最佳实践
- 使用显式等待(
WebDriverWait),而不是time.sleep,以确保测试可靠 - 优先使用 ID、CSS 选择器或相对定位器,而不是脆弱的 XPath 表达式
- 保持测试用例独立且可重复;失败时截取屏幕截图
- 将敏感数据(URL、凭据)存储在配置文件或环境变量中
- 使用 Selenium Grid 并行执行;确保浏览器和驱动版本匹配
资源
- 官方文档:https://www.selenium.dev/documentation/
- Selenium Grid:https://www.selenium.dev/documentation/grid/
关键词
selenium, WebDriver, 浏览器自动化, E2E, 端到端测试, 无头, Selenium Grid, ChromeDriver, 显式等待, CSS 选择器
评论
支持 Markdown