From b5e06903bdebe1ad3c75e74d0a443d141a6ea98d Mon Sep 17 00:00:00 2001 From: naibo Date: Mon, 11 Dec 2023 04:38:37 +0800 Subject: [PATCH] Code Online Debugging!!! --- ElectronJS/EasySpider_en.crx | Bin 207366 -> 207370 bytes ElectronJS/EasySpider_zh.crx | Bin 207367 -> 207371 bytes ElectronJS/main.js | 79 +- ElectronJS/src/taskGrid/FlowChart.html | 2 +- ElectronJS/src/taskGrid/FlowChart.js | 2 +- ElectronJS/src/taskGrid/FlowChart_CN.html | 2 +- ElectronJS/tasks/237.json | 888 +----------------- .../src/content-scripts/messageInteraction.js | 2 +- 8 files changed, 71 insertions(+), 904 deletions(-) diff --git a/ElectronJS/EasySpider_en.crx b/ElectronJS/EasySpider_en.crx index a8241d6bcd616bd3cbc697c32d170cc26d955431..8f6c50b48ea6476320126a05862c752e6307d195 100644 GIT binary patch delta 4382 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 MSaEwOV delta 4405 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 diff --git a/ElectronJS/EasySpider_zh.crx b/ElectronJS/EasySpider_zh.crx index db5580fcce782cea28394d61434c6c7dc2d9db19..a6d6ea4ddd28c60cd82e4aca18571d50d6fafc0f 100644 GIT binary patch delta 4404 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 delta 4405 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 k#F-?2-wWl1f setTimeout(resolve, afterJSWaitTime)); } send_message_to_browser(JSON.stringify({"type": "cancelSelection"})); - } else if (option == 4) { //键盘输入事件 + } + else if (option == 3) { //提取数据 + notify_browser("提示:提取数据操作只能试运行设置的JavaScript语句。", "Hint: can only test JavaScript statement set in the data extraction operation.", "info"); + let paras = parameters.paras; //所有的提取数据参数 + let not_found_xpaths = []; + for (let i = 0; i < paras.length; i++) { + let para = paras[i]; + let xpath = para.relativeXPath; + if (para.relative) { + let parent_node = JSON.parse(msg.message.parentNode); + let parent_xpath = parent_node.parameters.xpath; + xpath = parent_xpath + xpath; + } + let elementInfo = {"iframe": para.iframe, "xpath": xpath, "id": -1}; + let element = await findElementAcrossAllWindows(elementInfo, notifyBrowser=false); + if (element != null) { + if (para.beforeJS != "") { + await driver.executeScript(para.beforeJS, element); + await new Promise(resolve => setTimeout(resolve, para.beforeJSWaitTime)); + } + if (para.afterJS != "") { + await driver.executeScript(para.afterJS, element); + await new Promise(resolve => setTimeout(resolve, para.afterJSWaitTime)); + } + } else { + not_found_xpaths.push(xpath); + } + } + if (not_found_xpaths.length > 0) { + notify_browser("无法找到以下元素,请检查xpath是否正确:" + not_found_xpaths.join("\n"), "Cannot find the element, please check if the xpath is correct: " + not_found_xpaths.join("\n"), "warning"); + } + } + else if (option == 4) { //键盘输入事件 let elementInfo = {"iframe": parameters.iframe, "xpath": parameters.xpath, "id": -1}; let value = node.parameters.value; if (node.parameters.useLoop) { @@ -432,7 +465,18 @@ async function beginInvoke(msg, ws) { // Interacting with dropdown element based on optionMode switch (optionMode) { case 0: //切换到下一个选项 - let script = "var options = arguments[0].options;for (var i = 0; i < options.length; i++) {if (options[i].selected) {options[i].selected = false;if (i == options.length - 1) {options[0].selected = true;} else {options[i + 1].selected = true;}break;}}"; + let script = `var options = arguments[0].options; + for (var i = 0; i < options.length; i++) { + if (options[i].selected) { + options[i].selected = false; + if (i == options.length - 1) { + options[0].selected = true; + } else { + options[i + 1].selected = true; + } + break; + } + }`; await driver.executeScript(script, element); break; case 1: @@ -544,7 +588,7 @@ let wss = new WebSocket.Server({port: websocket_port}); wss.on('connection', function (ws) { ws.on('message', async function (message, isBinary) { let msg = JSON.parse(message.toString()); - console.log("\n\nGET A MESSAGE: ", msg); + // console.log("\n\nGET A MESSAGE: ", msg); // console.log(msg, msg.type, msg.message); if (msg.type == 0) { if (msg.message.id == 0) { @@ -553,17 +597,17 @@ wss.on('connection', function (ws) { // socket_window = null; // console.log("socket_window closed"); // }); - console.log("set socket_window") + // console.log("set socket_window at time: ", new Date()); } else if (msg.message.id == 1) { socket_start = ws; - console.log("set socket_start") + console.log("set socket_start at time: ", new Date()); } else if (msg.message.id == 2) { socket_flowchart = ws; // socket_flowchart.on('close', function (event) { // socket_flowchart = null; // console.log("socket_flowchart closed"); // }); - console.log("set socket_flowchart"); + console.log("set socket_flowchart at time: ", new Date()); } else { //其他的ID是用来标识不同的浏览器标签页的 await new Promise(resolve => setTimeout(resolve, 2300)); let handles = await driver.getAllWindowHandles(); @@ -577,6 +621,15 @@ wss.on('connection', function (ws) { socket_flowchart.send(JSON.stringify({"type": "title", "data": {"title": msg.message.title}})); allWindowSockets.push(ws); allWindowScoketNames.push(msg.message.id); + console.log("set socket for id: ", msg.message.id, " at time: ", new Date()); + ws.on('close', function (event) { + let index = allWindowSockets.indexOf(ws); + if (index > -1) { + allWindowSockets.splice(index, 1); + allWindowScoketNames.splice(index, 1); + } + console.log("socket for id: ", msg.message.id, " closed at time: ", new Date()); + }); // console.log("handle_pairs: ", handle_pairs); } } else if (msg.type == 10) { @@ -626,7 +679,7 @@ async function runBrowser(lang = "en", user_data_folder = '', mobile = false) { .setChromeOptions(options) .setChromeService(serviceBuilder) .build(); - await driver.manage().setTimeouts({implicit: 10000, pageLoad: 10000, script: 10000}); + await driver.manage().setTimeouts({implicit: 3, pageLoad: 10000, script: 10000}); await driver.executeScript("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"); // await driver.executeScript("localStorage.clear();"); //重置参数数量 const cdpConnection = await driver.createCDPConnection("page"); diff --git a/ElectronJS/src/taskGrid/FlowChart.html b/ElectronJS/src/taskGrid/FlowChart.html index 2e390c2..980ced5 100644 --- a/ElectronJS/src/taskGrid/FlowChart.html +++ b/ElectronJS/src/taskGrid/FlowChart.html @@ -91,7 +91,7 @@
- +
diff --git a/ElectronJS/src/taskGrid/FlowChart.js b/ElectronJS/src/taskGrid/FlowChart.js index 29a076b..4a16827 100644 --- a/ElectronJS/src/taskGrid/FlowChart.js +++ b/ElectronJS/src/taskGrid/FlowChart.js @@ -386,7 +386,7 @@ function elementDblClick(e) { try { let nodeType = app._data.nowNode["option"] if (nodeType >= 8) { - showInfo(LANG("试运行功能不适用于循环和条件分支操作。", "The trial run function is not applicable to loop and condition branch operations.")) + showInfo(LANG("试运行功能不适用于循环和条件分支操作,请试运行循环或条件分支内部的具体操作,如点击元素。", "The trial run function is not applicable to loop and condition branch operations. Please try to run the specific operations in the loop/condition branch, such as clicking elements.")); } else { if(nodeType == 5 && app._data.nowNode["parameters"]["codeMode"] != 0){ showInfo(LANG("试运行自定义操作功能只适用于执行JavaScript操作。", "The trial run custom action function is only applicable to run JavaScript operation.")) diff --git a/ElectronJS/src/taskGrid/FlowChart_CN.html b/ElectronJS/src/taskGrid/FlowChart_CN.html index 8955951..3fb183f 100644 --- a/ElectronJS/src/taskGrid/FlowChart_CN.html +++ b/ElectronJS/src/taskGrid/FlowChart_CN.html @@ -91,7 +91,7 @@
- +
diff --git a/ElectronJS/tasks/237.json b/ElectronJS/tasks/237.json index 022ce80..6a780b1 100644 --- a/ElectronJS/tasks/237.json +++ b/ElectronJS/tasks/237.json @@ -1,887 +1 @@ -{ - "id": 237, - "name": "EXEC自定义函数示例:中国地震台网——历史查询", - "url": "https://www.ceic.ac.cn/history", - "links": "https://www.ceic.ac.cn/history", - "create_time": "12/9/2023, 3:36:47 AM", - "update_time": "12/10/2023, 11:57:28 AM", - "version": "0.6.0", - "saveThreshold": 10, - "quitWaitTime": 60, - "environment": 0, - "maximizeWindow": 0, - "maxViewLength": 15, - "recordLog": 1, - "outputFormat": "xlsx", - "saveName": "current_time", - "inputExcel": "", - "startFromExit": 0, - "pauseKey": "k", - "containJudge": false, - "desc": "https://www.ceic.ac.cn/history", - "inputParameters": [ - { - "id": 0, - "name": "urlList_0", - "nodeId": 1, - "nodeName": "打开网页", - "value": "https://www.ceic.ac.cn/history", - "desc": "要采集的网址列表,多行以\\n分开", - "type": "text", - "exampleValue": "https://www.ceic.ac.cn/history" - }, - { - "id": 1, - "name": "loopText_1", - "nodeId": 2, - "nodeName": "循环", - "desc": "要输入的文本/网址,多行以\\n分开", - "type": "text", - "exampleValue": "15\n25\n35", - "value": "15\n25\n35" - }, - { - "id": 2, - "name": "loopTimes_循环点击单个元素_2", - "nodeId": 5, - "nodeName": "循环点击单个元素", - "desc": "循环循环点击单个元素执行的次数(0代表无限循环)", - "type": "int", - "exampleValue": 0, - "value": 0 - } - ], - "outputParameters": [ - { - "id": 0, - "name": "参数1_文本", - "desc": "", - "type": "text", - "recordASField": 1, - "exampleValue": "3.7" - }, - { - "id": 1, - "name": "参数2_文本", - "desc": "", - "type": "text", - "recordASField": 1, - "exampleValue": "2023-11-3003:44:10" - }, - { - "id": 2, - "name": "参数3_文本", - "desc": "", - "type": "text", - "recordASField": 1, - "exampleValue": "37.53" - }, - { - "id": 3, - "name": "参数4_文本", - "desc": "", - "type": "text", - "recordASField": 1, - "exampleValue": "112.47" - }, - { - "id": 4, - "name": "参数5_文本", - "desc": "", - "type": "text", - "recordASField": 1, - "exampleValue": "28" - }, - { - "id": 5, - "name": "参数6_链接文本", - "desc": "", - "type": "text", - "recordASField": 1, - "exampleValue": "山西太原市清徐县" - }, - { - "id": 6, - "name": "参数7_链接地址", - "desc": "", - "type": "text", - "recordASField": 1, - "exampleValue": "https://news.ceic.ac.cn/CC20231130034410.html" - }, - { - "id": 7, - "name": "参数8_文本", - "desc": "", - "type": "text", - "recordASField": 1, - "exampleValue": "震级(M)" - }, - { - "id": 8, - "name": "参数9_文本", - "desc": "", - "type": "text", - "recordASField": 1, - "exampleValue": "发震时刻(UTC+8)" - }, - { - "id": 9, - "name": "参数10_文本", - "desc": "", - "type": "text", - "recordASField": 1, - "exampleValue": "纬度(°)" - }, - { - "id": 10, - "name": "参数11_文本", - "desc": "", - "type": "text", - "recordASField": 1, - "exampleValue": "经度(°)" - }, - { - "id": 11, - "name": "参数12_文本", - "desc": "", - "type": "text", - "recordASField": 1, - "exampleValue": "深度(千米)" - }, - { - "id": 12, - "name": "参数13_文本", - "desc": "", - "type": "text", - "recordASField": 1, - "exampleValue": "参考位置" - }, - { - "id": 13, - "name": "自定义操作", - "desc": "自定义操作返回的数据", - "type": "text", - "recordASField": 0, - "exampleValue": "" - } - ], - "graph": [ - { - "index": 0, - "id": 0, - "parentId": 0, - "type": -1, - "option": 0, - "title": "root", - "sequence": [1, 2], - "parameters": { - "history": 1, - "tabIndex": 0, - "useLoop": false, - "xpath": "", - "iframe": false, - "wait": 0, - "waitType": 0, - "beforeJS": "", - "beforeJSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "waitElement": "", - "waitElementTime": 10, - "waitElementIframeIndex": 0 - }, - "isInLoop": false - }, - { - "id": 1, - "index": 1, - "parentId": 0, - "type": 0, - "option": 1, - "title": "打开网页", - "sequence": [], - "isInLoop": false, - "position": 0, - "parameters": { - "useLoop": false, - "xpath": "", - "wait": 0, - "waitType": 0, - "beforeJS": "", - "beforeJSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "waitElement": "", - "waitElementTime": 10, - "waitElementIframeIndex": 0, - "url": "https://www.ceic.ac.cn/history", - "links": "https://www.ceic.ac.cn/history", - "maxWaitTime": 10, - "scrollType": 0, - "scrollCount": 1, - "scrollWaitTime": 1, - "cookies": "" - } - }, - { - "id": 2, - "index": 2, - "parentId": 0, - "type": 1, - "option": 8, - "title": "循环", - "sequence": [3, 4, 9, 5], - "isInLoop": false, - "position": 1, - "parameters": { - "history": 1, - "tabIndex": 0, - "useLoop": false, - "xpath": "", - "iframe": false, - "wait": 0, - "waitType": 0, - "beforeJS": "", - "beforeJSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "waitElement": "", - "waitElementTime": 10, - "waitElementIframeIndex": 0, - "scrollType": 0, - "scrollCount": 1, - "scrollWaitTime": 1, - "loopType": "3", - "pathList": "", - "textList": "15\n25\n35", - "code": "", - "waitTime": 0, - "exitCount": 0, - "historyWait": 2, - "breakMode": 0, - "breakCode": "", - "breakCodeWaitTime": 0 - } - }, - { - "id": 3, - "index": 3, - "parentId": 2, - "type": 0, - "option": 4, - "title": "输入文字", - "sequence": [], - "isInLoop": true, - "position": 0, - "parameters": { - "history": 4, - "tabIndex": -1, - "useLoop": true, - "xpath": "//*[@id=\"weidu1\"]", - "iframe": false, - "wait": 0, - "waitType": 0, - "beforeJS": "", - "beforeJSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "waitElement": "", - "waitElementTime": 10, - "waitElementIframeIndex": 0, - "value": "1", - "index": 0, - "allXPaths": [ - "/html/body/div[1]/div[3]/div[1]/div[1]/div[1]/form[1]/div[2]/input[1]", - "//input[contains(., '')]", - "id(\"weidu1\")", - "//INPUT[@class='span1']", - "//INPUT[@name='weidu1']", - "/html/body/div[last()-3]/div[last()-1]/div/div/div[last()-1]/form/div[last()-3]/input[last()-1]" - ] - } - }, - { - "id": 4, - "index": 4, - "parentId": 2, - "type": 0, - "option": 2, - "title": "点击查询", - "sequence": [], - "isInLoop": true, - "position": 1, - "parameters": { - "history": 4, - "tabIndex": -1, - "useLoop": false, - "xpath": "//*[@id=\"search\"]", - "iframe": false, - "wait": 2, - "waitType": 0, - "beforeJS": "", - "beforeJSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "waitElement": "", - "waitElementTime": 10, - "waitElementIframeIndex": 0, - "scrollType": 0, - "scrollCount": 1, - "scrollWaitTime": 1, - "clickWay": 0, - "maxWaitTime": 10, - "paras": [], - "alertHandleType": 0, - "allXPaths": [ - "/html/body/div[1]/div[3]/div[1]/div[1]/div[1]/form[1]/div[5]/a[1]", - "//a[contains(., '查询')]", - "id(\"search\")", - "//A[@class='check']", - "/html/body/div[last()-3]/div[last()-1]/div/div/div[last()-1]/form/div/a" - ] - } - }, - { - "id": 6, - "index": 5, - "parentId": 2, - "type": 1, - "option": 8, - "title": "循环点击单个元素", - "sequence": [7, 6], - "isInLoop": true, - "position": 3, - "parameters": { - "history": 4, - "tabIndex": -1, - "useLoop": false, - "xpath": "//*[contains(@class, \"pagination\")]/ul[1]/li[last()-1]/a[1]", - "iframe": false, - "wait": 0, - "waitType": 0, - "beforeJS": "", - "beforeJSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "waitElement": "", - "waitElementTime": 10, - "waitElementIframeIndex": 0, - "scrollType": 0, - "scrollCount": 1, - "scrollWaitTime": 1, - "loopType": 0, - "pathList": "", - "textList": "", - "code": "", - "waitTime": 0, - "exitCount": 0, - "historyWait": 2, - "breakMode": 0, - "breakCode": "", - "breakCodeWaitTime": 0, - "allXPaths": [ - "/html/body/div[1]/div[3]/div[1]/div[1]/div[2]/div[1]/div[2]/div[1]/div[1]/ul[1]/li[10]/a[1]", - "//a[contains(., '»')]", - "/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div/div/div/ul/li[last()-1]/a" - ] - } - }, - { - "id": 8, - "index": 6, - "parentId": 6, - "type": 0, - "option": 2, - "title": "点击»", - "sequence": [], - "isInLoop": true, - "position": 1, - "parameters": { - "history": 4, - "tabIndex": -1, - "useLoop": true, - "xpath": "", - "iframe": false, - "wait": 2, - "waitType": 0, - "beforeJS": "", - "beforeJSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "waitElement": "", - "waitElementTime": 10, - "waitElementIframeIndex": 0, - "scrollType": 0, - "scrollCount": 1, - "scrollWaitTime": 1, - "clickWay": 0, - "maxWaitTime": 10, - "paras": [], - "alertHandleType": 0, - "allXPaths": [ - "/html/body/div[1]/div[3]/div[1]/div[1]/div[2]/div[1]/div[2]/div[1]/div[1]/ul[1]/li[10]/a[1]", - "//a[contains(., '»')]", - "/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div/div/div/ul/li[last()-1]/a" - ], - "loopType": 0 - } - }, - { - "id": 7, - "index": 7, - "parentId": 6, - "type": 1, - "option": 8, - "title": "循环采集数据", - "sequence": [8], - "isInLoop": true, - "position": 0, - "parameters": { - "history": 4, - "tabIndex": -1, - "useLoop": false, - "xpath": "/html/body/div[1]/div[3]/div[1]/div[1]/div[2]/div[1]/div[1]/table[1]/tbody[1]/tr", - "iframe": false, - "wait": 0, - "waitType": 0, - "beforeJS": "", - "beforeJSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "waitElement": "", - "waitElementTime": 10, - "waitElementIframeIndex": 0, - "scrollType": 0, - "scrollCount": 1, - "scrollWaitTime": 1, - "loopType": 1, - "pathList": "", - "textList": "", - "code": "", - "waitTime": 0, - "exitCount": 0, - "historyWait": 2, - "breakMode": 0, - "breakCode": "", - "breakCodeWaitTime": 0, - "allXPaths": [ - "/html/body/div[1]/div[3]/div[1]/div[1]/div[2]/div[1]/div[1]/table[1]/tbody[1]/tr[1]", - "//tr[contains(., '震级(M)发震时刻(')]", - "//TR[@class='speed-tr-h1']", - "/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-20]" - ] - } - }, - { - "id": 9, - "index": 8, - "parentId": 7, - "type": 0, - "option": 3, - "title": "提取数据", - "sequence": [], - "isInLoop": true, - "position": 0, - "parameters": { - "history": 4, - "tabIndex": -1, - "useLoop": false, - "xpath": "", - "iframe": false, - "wait": 0, - "waitType": 0, - "beforeJS": "", - "beforeJSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "waitElement": "", - "waitElementTime": 10, - "waitElementIframeIndex": 0, - "clear": 0, - "newLine": 1, - "paras": [ - { - "nodeType": 0, - "contentType": 1, - "relative": true, - "name": "参数1_文本", - "desc": "", - "relativeXPath": "/td[eval(\"self.test()\")]", - "allXPaths": [ - "/td[1]", - "//td[contains(., '3.7')]", - "/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-19]/td[last()-5]" - ], - "exampleValues": [{ "num": 0, "value": "3.7" }], - "unique_index": "/td[1]", - "iframe": false, - "default": "", - "paraType": "text", - "recordASField": 1, - "beforeJS": "", - "beforeJSWaitTime": 0, - "JS": "", - "JSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "downloadPic": 0 - }, - { - "nodeType": 0, - "contentType": 1, - "relative": true, - "name": "参数2_文本", - "desc": "", - "relativeXPath": "/td[2]", - "allXPaths": [ - "/td[2]", - "//td[contains(., '2023-11-30')]", - "/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-19]/td[last()-4]" - ], - "exampleValues": [{ "num": 0, "value": "2023-11-3003:44:10" }], - "unique_index": "/td[2]", - "iframe": false, - "default": "", - "paraType": "text", - "recordASField": 1, - "beforeJS": "", - "beforeJSWaitTime": 0, - "JS": "", - "JSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "downloadPic": 0 - }, - { - "nodeType": 0, - "contentType": 1, - "relative": true, - "name": "参数3_文本", - "desc": "", - "relativeXPath": "/td[3]", - "allXPaths": [ - "/td[3]", - "//td[contains(., '37.53')]", - "/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-19]/td[last()-3]" - ], - "exampleValues": [{ "num": 0, "value": "37.53" }], - "unique_index": "/td[3]", - "iframe": false, - "default": "", - "paraType": "text", - "recordASField": 1, - "beforeJS": "", - "beforeJSWaitTime": 0, - "JS": "", - "JSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "downloadPic": 0 - }, - { - "nodeType": 0, - "contentType": 1, - "relative": true, - "name": "参数4_文本", - "desc": "", - "relativeXPath": "/td[4]", - "allXPaths": [ - "/td[4]", - "//td[contains(., '112.47')]", - "/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-19]/td[last()-2]" - ], - "exampleValues": [{ "num": 0, "value": "112.47" }], - "unique_index": "/td[4]", - "iframe": false, - "default": "", - "paraType": "text", - "recordASField": 1, - "beforeJS": "", - "beforeJSWaitTime": 0, - "JS": "", - "JSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "downloadPic": 0 - }, - { - "nodeType": 0, - "contentType": 1, - "relative": true, - "name": "参数5_文本", - "desc": "", - "relativeXPath": "/td[5]", - "allXPaths": [ - "/td[5]", - "//td[contains(., '28')]", - "/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-19]/td[last()-1]" - ], - "exampleValues": [{ "num": 0, "value": "28" }], - "unique_index": "/td[5]", - "iframe": false, - "default": "", - "paraType": "text", - "recordASField": 1, - "beforeJS": "", - "beforeJSWaitTime": 0, - "JS": "", - "JSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "downloadPic": 0 - }, - { - "nodeType": 1, - "contentType": 0, - "relative": true, - "name": "参数6_链接文本", - "desc": "", - "relativeXPath": "/td[6]/a[1]", - "allXPaths": [ - "/td[6]/a[1]", - "//a[contains(., '山西太原市清徐县')]", - "id(\"cid\")", - "/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-19]/td/a" - ], - "exampleValues": [{ "num": 0, "value": "山西太原市清徐县" }], - "unique_index": "/td[6]/a[1]", - "iframe": false, - "default": "", - "paraType": "text", - "recordASField": 1, - "beforeJS": "", - "beforeJSWaitTime": 0, - "JS": "", - "JSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "downloadPic": 0 - }, - { - "nodeType": 2, - "contentType": 0, - "relative": true, - "name": "参数7_链接地址", - "desc": "", - "relativeXPath": "/td[6]/a[1]", - "allXPaths": [ - "/td[6]/a[1]", - "//a[contains(., '山西太原市清徐县')]", - "id(\"cid\")", - "/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-19]/td/a" - ], - "exampleValues": [ - { - "num": 0, - "value": "https://news.ceic.ac.cn/CC20231130034410.html" - } - ], - "unique_index": "/td[6]/a[1]", - "iframe": false, - "default": "", - "paraType": "text", - "recordASField": 1, - "beforeJS": "", - "beforeJSWaitTime": 0, - "JS": "", - "JSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "downloadPic": 0 - }, - { - "nodeType": 0, - "contentType": 1, - "relative": true, - "name": "参数8_文本", - "desc": "", - "relativeXPath": "/th[1]", - "allXPaths": [ - "/th[1]", - "//th[contains(., '震级(M)')]", - "/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-20]/th[last()-5]" - ], - "exampleValues": [{ "num": 1, "value": "震级(M)" }], - "unique_index": "/th[1]", - "iframe": false, - "default": "", - "paraType": "text", - "recordASField": 1, - "beforeJS": "", - "beforeJSWaitTime": 0, - "JS": "", - "JSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "downloadPic": 0 - }, - { - "nodeType": 0, - "contentType": 1, - "relative": true, - "name": "参数9_文本", - "desc": "", - "relativeXPath": "/th[2]", - "allXPaths": [ - "/th[2]", - "//th[contains(., '发震时刻(UTC+8')]", - "/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-20]/th[last()-4]" - ], - "exampleValues": [{ "num": 1, "value": "发震时刻(UTC+8)" }], - "unique_index": "/th[2]", - "iframe": false, - "default": "", - "paraType": "text", - "recordASField": 1, - "beforeJS": "", - "beforeJSWaitTime": 0, - "JS": "", - "JSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "downloadPic": 0 - }, - { - "nodeType": 0, - "contentType": 1, - "relative": true, - "name": "参数10_文本", - "desc": "", - "relativeXPath": "/th[3]", - "allXPaths": [ - "/th[3]", - "//th[contains(., '纬度(°)')]", - "/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-20]/th[last()-3]" - ], - "exampleValues": [{ "num": 1, "value": "纬度(°)" }], - "unique_index": "/th[3]", - "iframe": false, - "default": "", - "paraType": "text", - "recordASField": 1, - "beforeJS": "", - "beforeJSWaitTime": 0, - "JS": "", - "JSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "downloadPic": 0 - }, - { - "nodeType": 0, - "contentType": 1, - "relative": true, - "name": "参数11_文本", - "desc": "", - "relativeXPath": "/th[4]", - "allXPaths": [ - "/th[4]", - "//th[contains(., '经度(°)')]", - "/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-20]/th[last()-2]" - ], - "exampleValues": [{ "num": 1, "value": "经度(°)" }], - "unique_index": "/th[4]", - "iframe": false, - "default": "", - "paraType": "text", - "recordASField": 1, - "beforeJS": "", - "beforeJSWaitTime": 0, - "JS": "", - "JSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "downloadPic": 0 - }, - { - "nodeType": 0, - "contentType": 1, - "relative": true, - "name": "参数12_文本", - "desc": "", - "relativeXPath": "/th[5]", - "allXPaths": [ - "/th[5]", - "//th[contains(., '深度(千米)')]", - "/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-20]/th[last()-1]" - ], - "exampleValues": [{ "num": 1, "value": "深度(千米)" }], - "unique_index": "/th[5]", - "iframe": false, - "default": "", - "paraType": "text", - "recordASField": 1, - "beforeJS": "", - "beforeJSWaitTime": 0, - "JS": "", - "JSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "downloadPic": 0 - }, - { - "nodeType": 0, - "contentType": 1, - "relative": true, - "name": "参数13_文本", - "desc": "", - "relativeXPath": "/th[6]", - "allXPaths": [ - "/th[6]", - "//th[contains(., '参考位置')]", - "/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-20]/th" - ], - "exampleValues": [{ "num": 1, "value": "参考位置" }], - "unique_index": "/th[6]", - "iframe": false, - "default": "", - "paraType": "text", - "recordASField": 1, - "beforeJS": "", - "beforeJSWaitTime": 0, - "JS": "", - "JSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "downloadPic": 0 - } - ], - "loopType": 1 - } - }, - { - "id": 5, - "index": 9, - "parentId": 2, - "type": 0, - "option": 5, - "title": "自定义操作", - "sequence": [], - "isInLoop": true, - "position": 2, - "parameters": { - "history": 1, - "tabIndex": 0, - "useLoop": false, - "xpath": "", - "iframe": false, - "wait": 0, - "waitType": 0, - "beforeJS": "", - "beforeJSWaitTime": 0, - "afterJS": "", - "afterJSWaitTime": 0, - "waitElement": "", - "waitElementTime": 10, - "waitElementIframeIndex": 0, - "clear": 0, - "newLine": 1, - "codeMode": "5", - "code": "def test():\n a = 1\n print(\"AMESSAGE:\",a)\n return a\nself.test =test", - "waitTime": 0, - "recordASField": 0, - "paraType": "text" - } - } - ] -} +{"id":237,"name":"EXEC自定义函数示例:中国地震台网——历史查询","url":"https://www.ceic.ac.cn/history","links":"https://www.ceic.ac.cn/history","create_time":"12/9/2023, 3:36:47 AM","update_time":"12/11/2023, 4:27:41 AM","version":"0.6.0","saveThreshold":10,"quitWaitTime":60,"environment":0,"maximizeWindow":0,"maxViewLength":15,"recordLog":1,"outputFormat":"xlsx","saveName":"current_time","inputExcel":"","startFromExit":0,"pauseKey":"k","containJudge":false,"desc":"https://www.ceic.ac.cn/history","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.ceic.ac.cn/history","desc":"要采集的网址列表,多行以\\n分开","type":"text","exampleValue":"https://www.ceic.ac.cn/history"},{"id":1,"name":"loopText_1","nodeId":2,"nodeName":"循环","desc":"要输入的文本/网址,多行以\\n分开","type":"text","exampleValue":"15\n25\n35","value":"15\n25\n35"},{"id":2,"name":"loopTimes_循环点击单个元素_2","nodeId":5,"nodeName":"循环点击单个元素","desc":"循环循环点击单个元素执行的次数(0代表无限循环)","type":"int","exampleValue":0,"value":0}],"outputParameters":[{"id":0,"name":"参数1_文本","desc":"","type":"text","recordASField":1,"exampleValue":"3.7"},{"id":1,"name":"参数2_文本","desc":"","type":"text","recordASField":1,"exampleValue":"2023-11-3003:44:10"},{"id":2,"name":"参数3_文本","desc":"","type":"text","recordASField":1,"exampleValue":"37.53"},{"id":3,"name":"参数4_文本","desc":"","type":"text","recordASField":1,"exampleValue":"112.47"},{"id":4,"name":"参数5_文本","desc":"","type":"text","recordASField":1,"exampleValue":"28"},{"id":5,"name":"参数6_链接文本","desc":"","type":"text","recordASField":1,"exampleValue":"山西太原市清徐县"},{"id":6,"name":"参数7_链接地址","desc":"","type":"text","recordASField":1,"exampleValue":"https://news.ceic.ac.cn/CC20231130034410.html"},{"id":7,"name":"参数8_文本","desc":"","type":"text","recordASField":1,"exampleValue":"震级(M)"},{"id":8,"name":"参数9_文本","desc":"","type":"text","recordASField":1,"exampleValue":"发震时刻(UTC+8)"},{"id":9,"name":"参数10_文本","desc":"","type":"text","recordASField":1,"exampleValue":"纬度(°)"},{"id":10,"name":"参数11_文本","desc":"","type":"text","recordASField":1,"exampleValue":"经度(°)"},{"id":11,"name":"参数12_文本","desc":"","type":"text","recordASField":1,"exampleValue":"深度(千米)"},{"id":12,"name":"参数13_文本","desc":"","type":"text","recordASField":1,"exampleValue":"参考位置"},{"id":13,"name":"自定义操作","desc":"自定义操作返回的数据","type":"text","recordASField":0,"exampleValue":""}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,2],"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"waitElement":"","waitElementTime":10,"waitElementIframeIndex":0},"isInLoop":false},{"id":1,"index":1,"parentId":0,"type":0,"option":1,"title":"打开网页","sequence":[],"isInLoop":false,"position":0,"parameters":{"useLoop":false,"xpath":"","wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"waitElement":"","waitElementTime":10,"waitElementIframeIndex":0,"url":"https://www.ceic.ac.cn/history","links":"https://www.ceic.ac.cn/history","maxWaitTime":10,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"cookies":""}},{"id":2,"index":2,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[3,4,9,5],"isInLoop":false,"position":1,"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"waitElement":"","waitElementTime":10,"waitElementIframeIndex":0,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"loopType":"3","pathList":"","textList":"15\n25\n35","code":"","waitTime":0,"exitCount":0,"historyWait":2,"breakMode":0,"breakCode":"","breakCodeWaitTime":0}},{"id":3,"index":3,"parentId":2,"type":0,"option":4,"title":"输入文字","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":4,"tabIndex":-1,"useLoop":true,"xpath":"//*[@id=\"weidu1\"]","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"waitElement":"","waitElementTime":10,"waitElementIframeIndex":0,"value":"1","index":0,"allXPaths":["/html/body/div[1]/div[3]/div[1]/div[1]/div[1]/form[1]/div[2]/input[1]","//input[contains(., '')]","id(\"weidu1\")","//INPUT[@class='span1']","//INPUT[@name='weidu1']","/html/body/div[last()-3]/div[last()-1]/div/div/div[last()-1]/form/div[last()-3]/input[last()-1]"]}},{"id":4,"index":4,"parentId":2,"type":0,"option":2,"title":"点击查询","sequence":[],"isInLoop":true,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"//*[@id=\"search\"]","iframe":false,"wait":2,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"waitElement":"","waitElementTime":10,"waitElementIframeIndex":0,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"clickWay":0,"maxWaitTime":10,"paras":[],"alertHandleType":0,"allXPaths":["/html/body/div[1]/div[3]/div[1]/div[1]/div[1]/form[1]/div[5]/a[1]","//a[contains(., '查询')]","id(\"search\")","//A[@class='check']","/html/body/div[last()-3]/div[last()-1]/div/div/div[last()-1]/form/div/a"]}},{"id":6,"index":5,"parentId":2,"type":1,"option":8,"title":"循环点击单个元素","sequence":[7,6],"isInLoop":true,"position":3,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"//*[contains(@class, \"pagination\")]/ul[1]/li[last()-1]/a[1]","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"waitElement":"","waitElementTime":10,"waitElementIframeIndex":0,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"loopType":0,"pathList":"","textList":"","code":"","waitTime":0,"exitCount":0,"historyWait":2,"breakMode":0,"breakCode":"","breakCodeWaitTime":0,"allXPaths":["/html/body/div[1]/div[3]/div[1]/div[1]/div[2]/div[1]/div[2]/div[1]/div[1]/ul[1]/li[10]/a[1]","//a[contains(., '»')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div/div/div/ul/li[last()-1]/a"]}},{"id":8,"index":6,"parentId":6,"type":0,"option":2,"title":"点击»","sequence":[],"isInLoop":true,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":true,"xpath":"","iframe":false,"wait":2,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"waitElement":"","waitElementTime":10,"waitElementIframeIndex":0,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"clickWay":0,"maxWaitTime":10,"paras":[],"alertHandleType":0,"allXPaths":["/html/body/div[1]/div[3]/div[1]/div[1]/div[2]/div[1]/div[2]/div[1]/div[1]/ul[1]/li[10]/a[1]","//a[contains(., '»')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div/div/div/ul/li[last()-1]/a"],"loopType":0}},{"id":7,"index":7,"parentId":6,"type":1,"option":8,"title":"循环采集数据","sequence":[8],"isInLoop":true,"position":0,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"/html/body/div[1]/div[3]/div[1]/div[1]/div[2]/div[1]/div[1]/table[1]/tbody[1]/tr","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"waitElement":"","waitElementTime":10,"waitElementIframeIndex":0,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"loopType":1,"pathList":"","textList":"","code":"","waitTime":0,"exitCount":0,"historyWait":2,"breakMode":0,"breakCode":"","breakCodeWaitTime":0,"allXPaths":["/html/body/div[1]/div[3]/div[1]/div[1]/div[2]/div[1]/div[1]/table[1]/tbody[1]/tr[1]","//tr[contains(., '震级(M)发震时刻(')]","//TR[@class='speed-tr-h1']","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-20]"]}},{"id":9,"index":8,"parentId":7,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"waitElement":"","waitElementTime":10,"waitElementIframeIndex":0,"clear":0,"newLine":1,"paras":[{"nodeType":0,"contentType":1,"relative":true,"name":"参数1_文本","desc":"","relativeXPath":"/td[eval(\"self.test()\")]","allXPaths":["/td[1]","//td[contains(., '3.7')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-19]/td[last()-5]"],"exampleValues":[{"num":0,"value":"3.7"}],"unique_index":"/td[1]","iframe":false,"default":"","paraType":"text","recordASField":1,"beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数2_文本","desc":"","relativeXPath":"/td[2]","allXPaths":["/td[2]","//td[contains(., '2023-11-30')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-19]/td[last()-4]"],"exampleValues":[{"num":0,"value":"2023-11-3003:44:10"}],"unique_index":"/td[2]","iframe":false,"default":"","paraType":"text","recordASField":1,"beforeJS":"arguments[0].innerText = \"123\"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数3_文本","desc":"","relativeXPath":"/td[3]","allXPaths":["/td[3]","//td[contains(., '37.53')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-19]/td[last()-3]"],"exampleValues":[{"num":0,"value":"37.53"}],"unique_index":"/td[3]","iframe":false,"default":"","paraType":"text","recordASField":1,"beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数4_文本","desc":"","relativeXPath":"/td[4]","allXPaths":["/td[4]","//td[contains(., '112.47')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-19]/td[last()-2]"],"exampleValues":[{"num":0,"value":"112.47"}],"unique_index":"/td[4]","iframe":false,"default":"","paraType":"text","recordASField":1,"beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数5_文本","desc":"","relativeXPath":"/td[5]","allXPaths":["/td[5]","//td[contains(., '28')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-19]/td[last()-1]"],"exampleValues":[{"num":0,"value":"28"}],"unique_index":"/td[5]","iframe":false,"default":"","paraType":"text","recordASField":1,"beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":1,"contentType":0,"relative":true,"name":"参数6_链接文本","desc":"","relativeXPath":"/td[6]/a[1]","allXPaths":["/td[6]/a[1]","//a[contains(., '山西太原市清徐县')]","id(\"cid\")","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-19]/td/a"],"exampleValues":[{"num":0,"value":"山西太原市清徐县"}],"unique_index":"/td[6]/a[1]","iframe":false,"default":"","paraType":"text","recordASField":1,"beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":2,"contentType":0,"relative":true,"name":"参数7_链接地址","desc":"","relativeXPath":"/td[6]/a[1]","allXPaths":["/td[6]/a[1]","//a[contains(., '山西太原市清徐县')]","id(\"cid\")","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-19]/td/a"],"exampleValues":[{"num":0,"value":"https://news.ceic.ac.cn/CC20231130034410.html"}],"unique_index":"/td[6]/a[1]","iframe":false,"default":"","paraType":"text","recordASField":1,"beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数8_文本","desc":"","relativeXPath":"/th[1]","allXPaths":["/th[1]","//th[contains(., '震级(M)')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-20]/th[last()-5]"],"exampleValues":[{"num":1,"value":"震级(M)"}],"unique_index":"/th[1]","iframe":false,"default":"","paraType":"text","recordASField":1,"beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数9_文本","desc":"","relativeXPath":"/th[2]","allXPaths":["/th[2]","//th[contains(., '发震时刻(UTC+8')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-20]/th[last()-4]"],"exampleValues":[{"num":1,"value":"发震时刻(UTC+8)"}],"unique_index":"/th[2]","iframe":false,"default":"","paraType":"text","recordASField":1,"beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数10_文本","desc":"","relativeXPath":"/th[3]","allXPaths":["/th[3]","//th[contains(., '纬度(°)')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-20]/th[last()-3]"],"exampleValues":[{"num":1,"value":"纬度(°)"}],"unique_index":"/th[3]","iframe":false,"default":"","paraType":"text","recordASField":1,"beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数11_文本","desc":"","relativeXPath":"/th[4]","allXPaths":["/th[4]","//th[contains(., '经度(°)')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-20]/th[last()-2]"],"exampleValues":[{"num":1,"value":"经度(°)"}],"unique_index":"/th[4]","iframe":false,"default":"","paraType":"text","recordASField":1,"beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数12_文本","desc":"","relativeXPath":"/th[5]","allXPaths":["/th[5]","//th[contains(., '深度(千米)')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-20]/th[last()-1]"],"exampleValues":[{"num":1,"value":"深度(千米)"}],"unique_index":"/th[5]","iframe":false,"default":"","paraType":"text","recordASField":1,"beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数13_文本","desc":"","relativeXPath":"/th[6]","allXPaths":["/th[6]","//th[contains(., '参考位置')]","/html/body/div[last()-3]/div[last()-1]/div/div/div/div/div[last()-1]/table/tbody/tr[last()-20]/th"],"exampleValues":[{"num":1,"value":"参考位置"}],"unique_index":"/th[6]","iframe":false,"default":"","paraType":"text","recordASField":1,"beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}],"loopType":1}},{"id":5,"index":9,"parentId":2,"type":0,"option":5,"title":"自定义操作","sequence":[],"isInLoop":true,"position":2,"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"waitElement":"","waitElementTime":10,"waitElementIframeIndex":0,"clear":0,"newLine":1,"codeMode":"5","code":"def test():\n a = 1\n print(\"AMESSAGE:\",a)\n return a\nself.test =test","waitTime":0,"recordASField":0,"paraType":"text"}}]} \ No newline at end of file diff --git a/Extension/manifest_v3/src/content-scripts/messageInteraction.js b/Extension/manifest_v3/src/content-scripts/messageInteraction.js index 5f877b4..722678b 100644 --- a/Extension/manifest_v3/src/content-scripts/messageInteraction.js +++ b/Extension/manifest_v3/src/content-scripts/messageInteraction.js @@ -229,7 +229,7 @@ function createNotification(text, type="info") { setInterval(function () { let notifications = document.getElementsByClassName("notification_of_easyspider"); for (let i = 0; i < notifications.length; i++) { - if (new Date().getTime() - parseInt(notifications[i].getAttribute("data-timestamp")) > 10000) { + if (new Date().getTime() - parseInt(notifications[i].dataset.timestamp) > 10000) { if (notifications[i].parentNode === document.body) { document.body.removeChild(notifications[i]); // 避免移除已经不存在的元素 }