<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      一、下載瀏覽器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();

       

      posted on 2025-01-02 14:26  Q同碼  閱讀(45)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 337P日本欧洲亚洲大胆精品555588 | 国产精品无码av在线一区| 亚洲综合av永久无码精品一区二区| 亚洲老熟女一区二区三区| 久久中文字幕无码一区二区| 精品无码一区二区三区电影| 又爽又黄无遮挡高潮视频网站| 日韩av在线不卡一区二区三区| 92自拍视频爽啪在线观看| 国产成人精品无码免费看| 久久精品免视看国产成人| 亚洲国产激情一区二区三区| 久久精品国产福利一区二区 | 国产美女在线观看大长腿| 久久精品国产久精国产69| 国产亚洲精品AA片在线播放天 | 欧洲码亚洲码的区别入口| 亚洲一区二区三区激情在线| 另类 专区 欧美 制服丝袜| 中文字幕在线国产精品| 国产精品成| 芳草地社区在线视频| 日本欧美一区二区三区在线播放 | 亚洲第一区二区快射影院| 午夜福利国产盗摄久久性| 岛国av在线播放观看| 亚洲女同精品久久女同| 亚洲av成人一区二区| 亚洲中文久久久精品无码| 国产强奷在线播放免费| 亚洲日韩久热中文字幕| 熟女人妻视频| 久久热这里只有精品99| 最新亚洲人成网站在线影院| 国产亚洲精品久久久久久青梅| 久久精品国产亚洲成人av| 中文字幕av一区二区| 伊在人间香蕉最新视频| 爱性久久久久久久久| 亚洲成人av综合一区| 大伊香蕉精品一区视频在线|