使用 selenium-webdriver 开发 Web 自动 UI 测试程序

devtools/2025/1/15 15:11:31/

优缺点

  • 优点
    • 有时候有可能一个改动导致其他的地方的功能失去效果,这样使用 Web 自动 UI 测试程序可以快速的检查并定位问题,节省大量的人工验证时间
  • 缺点
    • 增加了维护成本,如果功能更新过快或者技术更新过快,维护成本也会随之提高

技术栈

  • CSS + JavaScript + NodeJS [+ TypeScript]

安装依赖

npm i selenium-webdriver -D
# 如果是 TypeScript,还需要增加类型
npm i selenium-webdriver @types/selenium-webdriver -D

使用

  • 需要一个测试的服务地址,这里用的是本地测试服务(确保你存在这个服务),比如:http://127.0.0.1:3333
  • By: 选择器
  • until: 工具集合
  • Browser: 浏览器
  • Builder: 程序服务
// index.js
import { By, until, Browser, Builder } from 'selenium-webdriver'/*** 服务地址*/
const testPath = `http://127.0.0.1:3333/`/*** 启动服务*/
const driver = await new Builder().forBrowser(Browser.CHROME).build()try {await driver.get(testPath)
} catch {console.log(`请检查 ${testPath} 是否启动`)await driver.quit()
}// 执行操作
try {const elementSelector = By.css('.btns li:first-child') // 选择器await driver.wait(until.elementLocated(elementSelector), 6000) // 等待时间, 最多 10 秒await driver.sleep(2000)await driver.findElement(elementSelector).click()await driver.sleep(2000)
} catch (error) {console.log(error)
}

执行程序

node index.js

演示图

总结

  • 看上去是不是很简单,可以模拟用户操作
  • 示例源码

http://www.ppmy.cn/devtools/150708.html

相关文章

【C++课程学习】:C++11(C++发展,列表初始化,声明auto,typeid,decltype)

🎁个人主页:我们的五年 🔍系列专栏:C课程学习 🎉欢迎大家点赞👍评论📝收藏⭐文章 C学习笔记: https://blog.csdn.net/djdjiejsn/category_12682189.html 前言: C11相…

Spring Boot 应用开发入门

一、Spring Boot简介 Spring Boot 是一个基于 Spring 框架的开源 Java 基础框架,它简化了基于 Spring 的应用开发。Spring Boot 提供了一种快速、便捷的方式来创建独立、生产级的基于 Spring 框架的应用程序。它通过提供一系列的“启动器”依赖,帮助开发…

ssh2-sftp-client和ssh2配合使用js脚本快速部署项目到服务器

有时候因为服务器不能实现github或者gitlab的自动部署服务,所以就需要使用脚本来实现自动部署,可以省时省力,一劳永逸。这里就使用ssh2-sftp-client和ssh2来实现,即便是需要sudo权限,也是可以的。 1.先将本地打包后的…

Cherno C++学习笔记 P52 处理多返回值

在这篇文章当中,我们解决一下如何用C的函数处理多返回值的问题。 在有些情况下,我们希望我们的函数可以返回多个返回值,比如返回两个string或者是一个int加上一个string。如果我们用的是python之类的语言的话,那这个事情其实是很…

【论文阅读+复现】High-fidelity Person-centric Subject-to-Image Synthesis

以人物为中心的主体到图像的高保真合成,CVPR2024 code:CodeGoat24/Face-diffuser: [CVPR2024] Official implementation of High-fidelity Person-centric Subject-to-Image Synthesis. paper:2311.10329 背景 研究问题:这篇文…

Kylin: `GLIBC_2.34‘ not found

需要查看服务器GLIBC版本 strings /lib64/libc.so.6 |grep GLIBC_如果没有,有两种办法,一种是libc.so.6降级,但是这样很容易将服务器搞崩溃 所以可以尝试下载对应版本 glibc 打包编译,重新建立软连,下列是RPM资源可以…

win10安装anaconda环境与opencv

1 下载anaconda 从清华镜像源下载,下载地址Anaconda3-2024.06-1-Windows-x86_64.exe 。 2 安装anaconda 双击下载的应用,点击下一步,选择一个安装路径,如下所示,然后再点选"Add Anaconda3 to my Path"&am…

空指针:HttpSession异常,SpringBoot集成WebSocket

异常可能性: 404 : 请检查拦截器是否将请求拦截WebSocket握手期间HttpSession为空 HttpSession为空 方法一 : 网上参考大量的文档,有说跟前端请求域名有关系的。 反正对我来说,没啥用无法连接。 需使用 localhost&a…