一、下载浏览器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号