一、下載瀏覽器Edge
下載 Microsoft Edge ,開啟自動下載文件功能
二、搜索瀏覽器插件


三、安裝插件katalon recorder

四、katalon recorder插件功能介紹


五、數據驅動
上傳數據文件格式為csv,為兩列數據英文命名,將自引用到控件中,格式如下:

先將文件上傳到控件

引用文件到指定的測試用例中


將變量用在指定的地方,設置完成點擊”add“

插件自動寫入引用文件的腳本

六、使用script腳本
在command中使用runScript命令

target插入js代碼

七、將文件導出
7.1下載測試套件

7.2導入krecorde后綴的測試套件

7.3將測試用例轉換成其他代碼


八、外賣店鋪抓取文件
店鋪信息腳本九、js代碼說明
1 //get_shop_info.js 2 3 // 聲明一個全局變量來存儲商家信息 4 var allShopData = []; 5 6 // 清空商家信息數據 7 function clearAllShopData() { 8 allShopData = []; 9 } 10 11 // 模擬頁面上拉滾動效果 12 function scrollPageUp() { 13 var body = document.body; 14 if (body) { 15 window.scrollTo({ 16 top: body.scrollHeight, // 滾動到頁面底部 17 behavior: "smooth" // 使用平滑滾動效果 18 }); 19 } else { 20 console.error("Body element not found."); 21 } 22 } 23 24 // 判斷是否已經到達頁面底部 25 function isPageBottom() { 26 console.log("判斷是否已經到達頁面底部"); 27 return (window.innerHeight + window.scrollY) >= document.body.offsetHeight; 28 } 29 30 // 判斷是否存在 正在加載... 元素 31 function isElement() { 32 var element = document.querySelector("#sqt-openh5-poilistLoadMore .loading-img"); 33 if (!!element) { 34 console.log("捕獲到【正在加載】元素"); 35 } else { 36 console.log("未捕獲到【正在加載】元素"); 37 } 38 return !!element; 39 } 40 41 // 獲取所有商家的信息 42 function getShopData() { 43 // 在獲取商家信息之前清空之前的數據 44 clearAllShopData(); 45 46 var shopItems = document.querySelectorAll("#sqt-openh5-homepoilist .poilist-item"); 47 var shopData = []; 48 49 shopItems.forEach(item => { 50 // 獲取商家名稱 51 var nameElement = item.querySelector(".poilist-item-info1name"); 52 var name = nameElement ? nameElement.textContent.trim() : "未找到商家名稱"; 53 54 // 獲取評分 55 var scoreElement = item.querySelector(".poilist-item-info2 .score"); 56 var score = scoreElement ? scoreElement.textContent.trim() : "未找到評分"; 57 58 // 獲取月售 59 var salesElement = item.querySelector(".poilist-item-info2 .poi-info-txt:nth-child(2)"); 60 var sales = salesElement ? salesElement.textContent.trim() : "未找到月售"; 61 62 // 獲取人均消費 63 var avgElement = item.querySelector(".poilist-item-info2 .poi-info-txt:nth-child(3)"); 64 var avg = avgElement ? avgElement.textContent.trim() : "未找到人均消費"; 65 66 // 獲取起送價 67 var minOrderElement = item.querySelector(".poilist-item-info3 .poi-info-txt:nth-child(1)"); 68 var minOrder = minOrderElement ? minOrderElement.textContent.trim() : "未找到起送價"; 69 70 // 獲取配送費 71 var deliveryFeeElement = item.querySelector(".poilist-item-info3 .poi-info-txt:nth-child(2)"); 72 var deliveryFee = deliveryFeeElement ? deliveryFeeElement.textContent.trim() : "未找到配送費"; 73 74 // 將提取的數據存儲在對象中,并添加到全局變量中 75 allShopData.push({ 76 name, 77 score, 78 sales, 79 avg, 80 minOrder, 81 deliveryFee 82 }); 83 }); 84 85 // 存儲數據到 Session Storage 86 sessionStorage.setItem("shopData", JSON.stringify(allShopData)); 87 // 輸出結果 88 console.log(allShopData); 89 } 90 91 // 生成指定范圍內的隨機等待時間 92 function getRandomWaitTime(min, max) { 93 var time = Math.floor(Math.random() * (max - min + 1)) + min; 94 console.log(time); 95 return time; 96 } 97 98 // 文件下載函數 99 function downloadFile(fileName) { 100 // 從 Session Storage 中獲取數據 101 var shopData = JSON.parse(sessionStorage.getItem("shopData")); 102 103 // 創建 Excel 文件并下載 104 var wb = XLSX.utils.book_new(); 105 var wsData = shopData.map(shop => [shop.name, shop.score, shop.sales, shop.avg, shop.minOrder, shop.deliveryFee]); 106 wsData.unshift(["商家名稱", "評分", "月售", "人均消費", "起送價", "配送費"]); 107 var ws = XLSX.utils.aoa_to_sheet(wsData); 108 XLSX.utils.book_append_sheet(wb, ws, "商家信息"); 109 var fullFileName = "商家信息_" + fileName + ".xlsx"; 110 XLSX.writeFile(wb, fullFileName, { cellStyles: true }); 111 } 112 113 // 組合使用:先下拉滾動,然后提取商家信息 114 function scrollAndFetch() { 115 var ellipsisValue = document.querySelector(".ellipsis_dSZz_q").textContent.trim(); 116 var script = document.createElement("script"); 117 script.src = "https://cdn.jsdelivr.net/npm/xlsx@0.18.0/dist/xlsx.full.min.js"; // 使用 CDN 加載 118 script.onload = function() { 119 scrollPageUp(); // 執行下拉滾動 120 setTimeout(function() { 121 getShopData(); // 等待一段時間后獲取商家信息 122 setTimeout(function() { 123 if (isElement() && !isPageBottom()) { 124 scrollAndFetch(); // 如果未到達頁面底部,繼續滾動和獲取商家信息 125 } 126 else { 127 downloadFile(ellipsisValue); 128 } 129 }, getRandomWaitTime(6000, 15000)); // 等待5-10秒后再次判斷是否到達頁面底部 130 }, getRandomWaitTime(6000, 15000)); // 等待5-10秒后獲取商家信息 131 }; 132 document.body.appendChild(script); 133 } 134 135 scrollAndFetch();
浙公網安備 33010602011771號