使用 selenium-webdriver 開發 Web 自動 UI 測試程序

優缺點

  • 優點
    • 有時候有可能一個改動導致其他的地方的功能失去效果,這樣使用 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.pswp.cn/web/66001.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/66001.shtml
英文地址,請注明出處:http://en.pswp.cn/web/66001.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

性能測試工具Jmeter分布式運行

性能測試工具JMeter的分布式執行是一種用于增強壓力測試能力的技術方案,它允許用戶通過多臺機器來共同完成同一個測試計劃的執行。這種方式特別適用于需要模擬成百上千甚至上萬用戶并發訪問的情況,當單臺機器由于硬件資源(如CPU、內存、網絡I…

彌散張量分析開源軟件 DSI Studio 簡體中文漢化版可以下載了

網址: (63條消息) DSIStudio簡體中文漢化版(2022年7月)-算法與數據結構文檔類資源-CSDN文庫

移動云自研云原生數據庫入圍國采!

近日,中央國家機關2024年度事務型數據庫軟件框架協議聯合征集采購項目產品名單正式公布,移動云自主研發的云原生數據庫產品順利入圍。這一成就不僅彰顯了移動云在數據庫領域深耕多年造就的領先技術優勢,更標志著國家權威評審機構對移動云在數…

在vscode中使用R-1

參考我的上一篇博客: https://blog.csdn.net/weixin_62528784/article/details/145092632?spm1001.2014.3001.5501 這篇內容實際上就是上一篇博客的后續承接,既然都在vscode的jupyter中使用R了,實際上其實也能夠直接在vscode中原生使用R的編…

【Block總結】掩碼窗口自注意力 (M-WSA)

摘要 論文鏈接:https://arxiv.org/pdf/2404.07846 論文標題:Transformer-Based Blind-Spot Network for Self-Supervised Image Denoising Masked Window-Based Self-Attention (M-WSA) 是一種新穎的自注意力機制,旨在解決傳統自注意力方法在…

【Linux】統信UOS服務器安裝MySQL8.0(RPM)

目錄 一、下載安裝包 二、安裝MySQL 2.1hive適配 2.2ranger適配 3.2DolphinScheduler適配 一、下載安裝包 官網下載安裝包:MySQL :: MySQL Downloads 選擇社區版本下載 點擊MySQL Community Server 選擇對應系統的MySQL版本號 統信1060a 操作系統對應 redhat8…

小白:react antd 搭建框架關于 RangePicker DatePicker 時間組件使用記錄 2

文章目錄 一、 關于 RangePicker 組件返回的moment 方法示例 一、 關于 RangePicker 組件返回的moment 方法示例 moment方法中日后開發有用的方法如下: form.getFieldsValue().date[0].weeksInWeekYear(),form.getFieldsValue().date[0].zoneName(), form.getFiel…

Jenkins簡單的安裝運行

一、下載 官網下載:https://www.jenkins.io/download/ 清華大學開源軟件鏡像站:https://mirrors.tuna.tsinghua.edu.cn/jenkins/ 官網資料豐富,介紹了各種平臺安裝以及下載。安裝簡單,按照說明來就行。下面我介紹一個非常簡單的…

【CSS】HTML頁面定位CSS - position 屬性 relative 、absolute、fixed 、sticky

目錄 relative 相對定位 absolute 絕對定位 fixed 固定定位 sticky 粘性定位 position:relative 、absolute、fixed 、sticky (四選一) top:距離上面的像素 bottom:距離底部的像素 left:距離左邊的像素…

網絡安全 | WAF防護開通流程與技術原理詳解

關注:CodingTechWork 引言 隨著互聯網安全形勢的日益嚴峻,Web應用防火墻(WAF, Web Application Firewall)逐漸成為網站和應用的標準防護措施。WAF能夠有效識別和防止如SQL注入、跨站腳本攻擊(XSS)、惡意流…

小結:路由器和交換機的指令對比

路由器和交換機的指令有一定的相似性,但也有明顯的區別。以下是兩者指令的對比和主要差異: 相似之處 基本操作 兩者都支持類似的基本管理命令,比如: 進入系統視圖:system-view查看當前配置:display current…

Ubuntu中雙擊自動運行shell腳本

方法1: 修改文件雙擊反應 參考: https://blog.csdn.net/miffywm/article/details/103382405 chmod x test.sh鼠標選中待執行文件,在窗口左上角edit菜單中選擇preference設計雙擊執行快捷鍵,如下圖: 方法2: 設置一個應用 參考: https://blo…

從0開始學習搭網站的第一天

前言,以下內容學習自mdn社區,感興趣的朋友可以直接去看原文章web技術 目錄 web機制互聯網是怎么運作的網站服務器是什么什么是URL?什么是web服務器?什么是域名什么是超鏈接什么是網頁DOMgoole瀏覽器開發者工具 web機制 互聯網是怎…

java小灶課詳解:關于char和string的區別和對應的詳細操作

char和string的區別與操作詳解 在編程語言中,char和string是用于處理字符和字符串的兩種重要數據類型。它們在存儲、操作和應用場景上存在顯著差異。本文將從以下幾個方面詳細解析兩者的區別及常見操作。 1. 基本定義與存儲差異 char: 定義:…

黑馬linux筆記(03)在Linux上部署各類軟件 MySQL5.7/8.0 Tomcat(JDK) Nginx RabbitMQ

文章目錄 實戰章節:在Linux上部署各類軟件tar -zxvf各個選項的含義 為什么學習各類軟件在Linux上的部署 一 MySQL數據庫管理系統安裝部署【簡單】MySQL5.7版本在CentOS系統安裝MySQL8.0版本在CentOS系統安裝MySQL5.7版本在Ubuntu(WSL環境)系統…

[Transformer] The Structure of GPT, Generative Pretrained Transformer

The Structure of Generative Pretrained Transformer Reference: The Transformer architecture of GPT models How GPT Models Work

淺談云計算04 | 云基礎設施機制

探秘云基礎設施機制:云計算的基石 一、云基礎設施 —— 云計算的根基![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/1fb7ff493d3c4a1a87f539742a4f57a5.png)二、核心機制之網絡:連接云的橋梁(一)虛擬網絡邊界&#xff…

國內主流的Spring微服務方案指南

構建一個完整的 Spring 微服務方案涉及多個關鍵組件的集成與配置,包括服務注冊與發現、配置管理、API 網關、負載均衡、服務調用、熔斷與限流、消息中間件、分布式追蹤、服務網格、容器編排以及數據庫與緩存等。以下將結合前述內容,詳細介紹一個完整的中…

解鎖 JMeter 的 ForEach Controller 高效測試秘籍

各位小伙伴們,今天咱就來嘮嘮 JMeter 里超厲害的 “寶藏工具”——ForEach Controller,它可是能幫咱們在性能測試的江湖里 “大殺四方” 哦! 一、ForEach Controller 是啥 “神器” 想象一下,你手頭有一串神秘鑰匙,每…

【QT】QComboBox:activated信號和currentIndexChanged信號的區別

目錄 1、activated1.1 原型1.2 觸發機制1.3 使用場景1.4 連接信號和槽的方法1.4.1 方式一1.4.2 方式二 2、currentIndexChanged2.1 原型2.2 觸發機制2.3 使用場景2.4 連接信號和槽的方法 1、activated 1.1 原型 [signal] void QComboBox::activated(int index) [signal] void…