0

0

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

夢幻星辰

夢幻星辰

发布时间:2025-12-29 22:21:37

|

263人浏览过

|

来源于php中文网

原创

javascript自动化测试常用selenium webdriver结合node.js,通过selenium-webdriver库控制浏览器;需安装node.js(v16+)和chrome,执行npm install selenium-webdriver与chromedriver;推荐采用page object model分层设计、mocha/jest运行器及显式等待提升可维护性。

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

JavaScript 实现自动化测试,常用方案是结合 Selenium WebDriver 与 Node.js 生态,通过 selenium-webdriver 库控制真实浏览器执行操作、断言和流程验证。

安装与基础环境准备

确保已安装 Node.js(v16+)和 Chrome 浏览器。使用 npm 安装官方驱动包:

  • npm install selenium-webdriver
  • 推荐同时安装 chromedriver(自动管理 ChromeDriver 版本):npm install chromedriver
  • 若需更简洁的封装,可选 webdriverioplaywright(虽非 Selenium,但常被对比使用)

编写第一个 Selenium 脚本(Node.js + Chrome)

以下是最简可运行示例,打开百度、搜索“JavaScript”,并打印标题:

const { Builder, By, until } = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');

async function runTest() {
  let driver = await new Builder()
    .forBrowser('chrome')
    .build();

  try {
    await driver.get('https://www.baidu.com');
    await driver.findElement(By.id('kw')).sendKeys('JavaScript');
    await driver.findElement(By.id('su')).click();
    await driver.wait(until.titleContains('JavaScript'), 5000);
    console.log(await driver.getTitle()); // 输出:JavaScript_百度搜索
  } finally {
    await driver.quit(); // 关闭浏览器
  }
}
runTest();

关键点:使用 async/await 处理异步操作;By.id 等定位器匹配元素;until 提供显式等待能力,避免盲目 sleep。

Moshi Chat
Moshi Chat

法国AI实验室Kyutai推出的端到端实时多模态AI语音模型,具备听、说、看的能力,不仅可以实时收听,还能进行自然对话。

下载

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

元素定位与交互的常用方式

稳定定位是自动化可靠的核心。优先按以下顺序选择策略:

  • ID 或 name 属性:最快最稳,如 By.id('submit-btn')
  • CSS 选择器:灵活通用,如 By.css('button[type="submit"]')
  • XPath:适合动态或无标识结构,但性能略低,如 By.xpath('//div[contains(@class,"error")]/span')
  • 避免依赖纯文本、绝对 XPath 或坐标点击,易因 UI 变更而失败

组织可维护的测试代码

直接写脚本难以长期维护。建议分层设计:

  • Page Object Model(POM):为每个页面建一个类,封装元素查找和操作方法,例如 BaiduPage.search(keyword)
  • 使用 Mocha/Jest 作为测试运行器:提供 describe/it、钩子函数(beforeEach)、断言集成
  • 配置化驱动启动:支持 headless 模式、超时设置、不同浏览器切换(Chrome/Firefox)
  • 示例片段:driver.manage().setTimeouts({ implicit: 3000 }); 设置隐式等待

不复杂但容易忽略:本地调试时加 chrome.Options().addArguments('--auto-open-devtools-for-tabs') 可快速检查元素;CI 环境中用 --headless=new 启动无界面 Chrome。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

1054

2023.08.11

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

837

2023.11.06

scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

492

2023.10.18

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

377

2023.10.25

class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

850

2024.01.03

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

30

2025.12.06

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

530

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

576

2023.07.28

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

22

2026.03.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.9万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.6万人学习

CSS教程
CSS教程

共754课时 | 41.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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