最常用方式是结合 Selenium WebDriver 与 Node.js 生态,或更推荐 Playwright;Playwright 开箱即用、多浏览器支持、自动等待;Selenium 需手动管理驱动;定位优先用 data-testid,避免固定等待,测试应独立可重复。

JavaScript 实现自动化测试,尤其是浏览器端的 UI 自动化,最常用的方式是结合 Selenium WebDriver 和 Node.js 生态(如 selenium-webdriver 库或更现代的 WebdriverIO、Playwright)。Selenium 本身不绑定语言,但通过 WebDriver 协议可让 JavaScript 控制真实浏览器(Chrome、Firefox 等)执行点击、输入、断言等操作。
安装与基础环境准备
确保本地已安装 Node.js 和 Chrome 浏览器。推荐使用 chromedriver 配合 Chrome,或直接用 playwright(内置浏览器,免手动管理驱动)。
- 若用原生
selenium-webdriver:运行npm install selenium-webdriver,再单独下载匹配版本的chromedriver并配置 PATH,或使用chromedriver包自动管理 - 更推荐新手用
playwright:执行npm init playwright@latest,它会自动安装依赖、下载浏览器、生成示例测试,开箱即用 - 测试运行器可选
Jest、Vitest或Mocha,用于组织用例和断言
用 Playwright 写一个登录测试(推荐方式)
Playwright 是当前更轻量、稳定、API 更简洁的替代方案,支持多浏览器、自动等待、截图录屏,且无需手动启停驱动。
- 创建测试文件
login.spec.js - 启动浏览器上下文,打开页面:
const page = await context.newPage(); await page.goto('https://example.com/login'); - 定位并交互元素:
await page.fill('#username', 'testuser'); await page.fill('#password', '123456'); await page.click('button[type="submit"]'); - 断言结果:
await expect(page).toHaveURL(/\/dashboard/);或检查文本:await expect(page.getByText('欢迎回来')).toBeVisible();
用 selenium-webdriver 的基本流程(传统方式)
适合需要兼容老项目或必须用 Selenium Grid 的场景。
标签: css linux nodejs javascript word java js node.js node go vit
还木有评论哦,快来抢沙发吧~