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

embedded/2025/1/16 21:11:50/

优缺点

  • 优点
    • 有时候有可能一个改动导致其他的地方的功能失去效果,这样使用 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/embedded/154484.html

相关文章

【Linux】sed编辑器二

一、处理多行命令 sed编辑器有3种可用于处理多行文本的特殊命令。 N:加入数据流中的下一行,创建一个多行组进行处理;D:删除多行组中的一行;P:打印多行组中的一行。 1、next命令:N 单行next命…

【SpringSecurity】SpringSecurity安全框架授权

授权 权限系统要实现的效果:不同的用户可以使用不同的功能。 在后台进行用户权限的判断,判断当前用户是否有相应的权限,必须具有所需权限才能进行相应的操作。 在 SpringSecurity 中,默认使用 FilterSecurityInterceptor 进行权…

uni-app (接入智谱清言语言模型)

1.技术说明 uni-app、智谱清言、XMLHttpRequest、marked 2.实现原理 此处实现原理为前端直接请求返还数据结果,未经后端进行处理,如AI接口有变化,请根据接口文档进行修改,通义千问AI同理。 XMLHttpRequest发起请求->监听数…

JavaSwing游戏开发之Camera原理

package org.timer;import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.ArrayList; import java.util.List; import java.util.Random;public class GameCameraWithObjects extends JPanel implements KeyListener {// 游戏世界大小private …

js解决 Number失精度问题

const updatePromises adinfo.rows.map(async item > {const cwf await uniCloud.httpclient.request("https://api.oceanengine.com/open_api/v3.0/project/list/", {method: GET,data: {advertiser_id: item.account_id},// 1. 指定text数据格式dataType: tex…

R语言基础| 方差分析

写在前面 方差分析(ANOVA,Analysis of Variance)是统计学中一种用来比较三个或三个以上样本均值是否存在显著差异的方法。方差分析基于样本数据的方差来判断整体均值之间的差异,是处理多个样本组数据对比问题的常用技术。 方差分析…

HTML5 网站模板

HTML5 网站模板 参考 HTML5 Website Templates

网络安全实验之钓鱼网站的制作及技巧

在红队攻击中,除漏洞以外最简洁高效的攻击方式无疑是钓鱼攻击,通过不同的钓鱼方式可达到不同的攻击效果,本次我会分享最常见的钓鱼手段之一的网站钓鱼技术,同时对可实现的攻击操作进行演示。 更多网站钓鱼实验科普,可…