首页 > web前端 > js教程 > 正文

javascript如何实现自动化测试_怎样用Selenium控制浏览器

夢幻星辰
发布: 2025-12-23 16:45:18
原创
436人浏览过
最常用方式是结合 Selenium WebDriver 与 Node.js 生态,或更推荐 Playwright;Playwright 开箱即用、多浏览器支持、自动等待;Selenium 需手动管理驱动;定位优先用 data-testid,避免固定等待,测试应独立可重复。

javascript如何实现自动化测试_怎样用selenium控制浏览器

JavaScript 实现自动化测试,尤其是浏览器端的 UI 自动化,最常用的方式是结合 Selenium WebDriver 和 Node.js 生态(如 selenium-webdriver 库或更现代的 WebdriverIOPlaywright)。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,它会自动安装依赖、下载浏览器、生成示例测试,开箱即用
  • 测试运行器可选 JestVitestMocha,用于组织用例和断言

用 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 的场景。

造物云营销设计
造物云营销设计

造物云是一个在线3D营销设计平台,0基础也能做电商设计

造物云营销设计 97
查看详情 造物云营销设计

立即学习Java免费学习笔记(深入)”;

  • 引入模块:const { Builder, By, until } = require('selenium-webdriver');
  • 启动 Chrome 实例:let driver = await new Builder().forBrowser('chrome').build();
  • 导航与操作:await driver.get('https://example.com'); await driver.findElement(By.id('search')).sendKeys('nodejs'); await driver.findElement(By.name('btnK')).click();
  • 显式等待避免时序问题:await driver.wait(until.elementLocated(By.css('.result')), 5000);
  • 最后别忘了清理:await driver.quit();

关键注意事项

自动化测试不是“点点点”的录制回放,稳定性依赖合理的设计。

  • 优先用语义化、稳定的定位器:如 data-testid 属性(开发配合添加),而非易变的 class 名或 XPath 路径
  • 避免 sleep(2000) 这类固定等待;改用显式等待(等待元素出现/可点击/文本变化)
  • 测试应独立、可重复:每次运行前清理 cookies / localStorage,或使用干净的无痕上下文
  • CI 环境中注意浏览器权限(如 Linux 下需加 --no-sandbox 启动参数)

不复杂但容易忽略:真正的自动化价值在于持续运行、快速反馈、暴露回归问题,而不是单次跑通。从一个核心流程(如用户登录 → 创建订单)开始写起,逐步覆盖主路径,比追求全覆盖更实际。

以上就是javascript如何实现自动化测试_怎样用Selenium控制浏览器的详细内容,更多请关注php中文网其它相关文章!

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号