diff --git a/ElectronJS/src/taskGrid/test_pages/iframe.html b/ElectronJS/src/taskGrid/test_pages/iframe.html
new file mode 100644
index 0000000..9b51382
--- /dev/null
+++ b/ElectronJS/src/taskGrid/test_pages/iframe.html
@@ -0,0 +1,34 @@
+
+
+
+ Dynamic Iframe
+
+
+
+ IFRAME TEST
+
+
+ Header 1 |
+ Header 2 |
+
+
+ Row 1, Cell 1 |
+ Row 1, Cell 2 |
+
+
+ Row 2, Cell 1 |
+ Row 2, Cell 2 |
+
+
+
+
+
+
diff --git a/ElectronJS/tasks/117.json b/ElectronJS/tasks/117.json
index 99c074d..09a4503 100644
--- a/ElectronJS/tasks/117.json
+++ b/ElectronJS/tasks/117.json
@@ -1 +1 @@
-{"id":117,"name":"iP地址查询--手机号码查询归属地 | 邮政编码查询 | iP地址归属地查询 | 身份证号码验证在线查询网","url":"https://www.ip138.com","links":"https://www.ip138.com","create_time":"7/4/2023, 8:33:55 AM","version":"0.3.5","saveThreshold":10,"cloudflare":0,"environment":0,"containJudge":false,"desc":"https://www.ip138.com","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.ip138.com","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"https://www.ip138.com"}],"outputParameters":[{"id":0,"name":"参数1_文本","desc":"","type":"string","exampleValue":"您的iP地址是:[]来自:新加坡Singtel"},{"id":1,"name":"参数2_链接文本","desc":"","type":"string","exampleValue":"220.255.29.208"},{"id":2,"name":"参数3_链接地址","desc":"","type":"string","exampleValue":"https://www.ip138.com/iplookup.php?ip=220.255.29.208&action=2"},{"id":3,"name":"参数4_链接文本","desc":"","type":"string","exampleValue":""},{"id":4,"name":"参数5_链接地址","desc":"","type":"string","exampleValue":"https://www.ipshudi.com/"},{"id":5,"name":"参数6_图片地址","desc":"","type":"string","exampleValue":"https://6.ipchaxun.net/220.255.29.208.gif"},{"id":6,"name":"参数7_文本","desc":"","type":"string","exampleValue":"ip查询api接口"}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,2],"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":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,"url":"https://www.ip138.com","links":"https://www.ip138.com","maxWaitTime":10,"scrollType":0,"scrollCount":1,"scrollWaitTime":1}},{"id":2,"index":2,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[3],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"/html/body/p","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":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/p[1]","//p[contains(., '您的iP地址是:[')]","/html/body/p[last()-2]"]}},{"id":3,"index":3,"parentId":2,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":1,"relative":true,"name":"参数1_文本","desc":"","relativeXPath":"","allXPaths":["","//p[contains(., '您的iP地址是:[')]","/html/body/p[last()-2]"],"exampleValues":[{"num":0,"value":"您的iP地址是:[]来自:新加坡Singtel"}],"unique_index":"","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":1,"contentType":0,"relative":true,"name":"参数2_链接文本","desc":"","relativeXPath":"/a[1]","allXPaths":["/a[1]","//a[contains(., '220.255.29')]","/html/body/p[last()-2]/a[last()-1]"],"exampleValues":[{"num":0,"value":"220.255.29.208"}],"unique_index":"/a[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":2,"contentType":0,"relative":true,"name":"参数3_链接地址","desc":"","relativeXPath":"/a[1]","allXPaths":["/a[1]","//a[contains(., '220.255.29')]","/html/body/p[last()-2]/a[last()-1]"],"exampleValues":[{"num":0,"value":"https://www.ip138.com/iplookup.php?ip=220.255.29.208&action=2"}],"unique_index":"/a[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":1,"contentType":0,"relative":true,"name":"参数4_链接文本","desc":"","relativeXPath":"/a[2]","allXPaths":["/a[2]","//a[contains(., '')]","/html/body/p[last()-2]/a"],"exampleValues":[{"num":0,"value":""}],"unique_index":"/a[2]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":2,"contentType":0,"relative":true,"name":"参数5_链接地址","desc":"","relativeXPath":"/a[2]","allXPaths":["/a[2]","//a[contains(., '')]","/html/body/p[last()-2]/a"],"exampleValues":[{"num":0,"value":"https://www.ipshudi.com/"}],"unique_index":"/a[2]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":4,"contentType":1,"relative":true,"name":"参数6_图片地址","desc":"","relativeXPath":"/a[2]/img[1]","allXPaths":["/a[2]/img[1]","//img[contains(., '')]","/html/body/p[last()-2]/a/img"],"exampleValues":[{"num":0,"value":"https://6.ipchaxun.net/220.255.29.208.gif"}],"unique_index":"/a[2]/img[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数7_文本","desc":"","relativeXPath":"/a[1]/font[1]","allXPaths":["/a[1]/font[1]","//font[contains(., 'ip查询api接口')]","/html/body/p[last()-1]/a/font"],"exampleValues":[{"num":1,"value":"ip查询api接口"}],"unique_index":"/a[1]/font[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}],"loopType":1}}]}
\ No newline at end of file
+{"id":117,"name":"iP地址查询--138","url":"https://www.ip138.com","links":"https://www.ip138.com","create_time":"7/4/2023, 7:41:36 PM","version":"0.3.5","saveThreshold":10,"cloudflare":0,"environment":0,"containJudge":false,"desc":"https://www.ip138.com","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.ip138.com","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"https://www.ip138.com"}],"outputParameters":[{"id":0,"name":"参数1_文本","desc":"","type":"string","exampleValue":"您的iP地址是:[]来自:新加坡Singtel"},{"id":1,"name":"参数2_链接文本","desc":"","type":"string","exampleValue":"220.255.29.208"},{"id":2,"name":"参数3_链接地址","desc":"","type":"string","exampleValue":"https://www.ip138.com/iplookup.php?ip=220.255.29.208&action=2"},{"id":3,"name":"参数4_链接文本","desc":"","type":"string","exampleValue":""},{"id":4,"name":"参数5_链接地址","desc":"","type":"string","exampleValue":"https://www.ipshudi.com/"},{"id":5,"name":"参数6_图片地址","desc":"","type":"string","exampleValue":"https://6.ipchaxun.net/220.255.29.208.gif"},{"id":6,"name":"参数7_文本","desc":"","type":"string","exampleValue":"ip查询api接口"}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,2],"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":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,"url":"https://www.ip138.com","links":"https://www.ip138.com","maxWaitTime":10,"scrollType":0,"scrollCount":1,"scrollWaitTime":1}},{"id":2,"index":2,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[3],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"/html/body/p","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":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/p[1]","//p[contains(., '您的iP地址是:[')]","/html/body/p[last()-2]"]}},{"id":3,"index":3,"parentId":2,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":1,"relative":true,"name":"参数1_文本","desc":"","relativeXPath":"","allXPaths":["","//p[contains(., '您的iP地址是:[')]","/html/body/p[last()-2]"],"exampleValues":[{"num":0,"value":"您的iP地址是:[]来自:新加坡Singtel"}],"unique_index":"","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":1,"contentType":0,"relative":true,"name":"参数2_链接文本","desc":"","relativeXPath":"/a[1]","allXPaths":["/a[1]","//a[contains(., '220.255.29')]","/html/body/p[last()-2]/a[last()-1]"],"exampleValues":[{"num":0,"value":"220.255.29.208"}],"unique_index":"/a[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":2,"contentType":0,"relative":true,"name":"参数3_链接地址","desc":"","relativeXPath":"/a[1]","allXPaths":["/a[1]","//a[contains(., '220.255.29')]","/html/body/p[last()-2]/a[last()-1]"],"exampleValues":[{"num":0,"value":"https://www.ip138.com/iplookup.php?ip=220.255.29.208&action=2"}],"unique_index":"/a[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":1,"contentType":0,"relative":true,"name":"参数4_链接文本","desc":"","relativeXPath":"/a[2]","allXPaths":["/a[2]","//a[contains(., '')]","/html/body/p[last()-2]/a"],"exampleValues":[{"num":0,"value":""}],"unique_index":"/a[2]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":2,"contentType":0,"relative":true,"name":"参数5_链接地址","desc":"","relativeXPath":"/a[2]","allXPaths":["/a[2]","//a[contains(., '')]","/html/body/p[last()-2]/a"],"exampleValues":[{"num":0,"value":"https://www.ipshudi.com/"}],"unique_index":"/a[2]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":4,"contentType":1,"relative":true,"name":"参数6_图片地址","desc":"","relativeXPath":"/a[2]/img[1]","allXPaths":["/a[2]/img[1]","//img[contains(., '')]","/html/body/p[last()-2]/a/img"],"exampleValues":[{"num":0,"value":"https://6.ipchaxun.net/220.255.29.208.gif"}],"unique_index":"/a[2]/img[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数7_文本","desc":"","relativeXPath":"/a[1]/font[1]","allXPaths":["/a[1]/font[1]","//font[contains(., 'ip查询api接口')]","/html/body/p[last()-1]/a/font"],"exampleValues":[{"num":1,"value":"ip查询api接口"}],"unique_index":"/a[1]/font[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}],"loopType":1}}]}
\ No newline at end of file
diff --git a/ElectronJS/tasks/118.json b/ElectronJS/tasks/118.json
index 3041d68..166ed1f 100644
--- a/ElectronJS/tasks/118.json
+++ b/ElectronJS/tasks/118.json
@@ -1,379 +1 @@
-{
- "id": 118,
- "name": "iP地址查询--手机号码查询归属地 | 邮政编码查询 | iP地址归属地查询 | 身份证号码验证在线查询网",
- "url": "https://www.ip138.com",
- "links": "https://www.ip138.com",
- "create_time": "7/4/2023, 8:43:31 AM",
- "version": "0.3.5",
- "saveThreshold": 10,
- "cloudflare": 0,
- "environment": 0,
- "containJudge": false,
- "desc": "https://www.ip138.com",
- "inputParameters": [
- {
- "id": 0,
- "name": "urlList_0",
- "nodeId": 1,
- "nodeName": "打开网页",
- "value": "https://www.ip138.com",
- "desc": "要采集的网址列表,多行以\\n分开",
- "type": "string",
- "exampleValue": "https://www.ip138.com"
- }
- ],
- "outputParameters": [
- {
- "id": 0,
- "name": "参数1_文本",
- "desc": "",
- "type": "string",
- "exampleValue": "502 Bad Gateway"
- }
- ],
- "graph": [
- {
- "index": 0,
- "id": 0,
- "parentId": 0,
- "type": -1,
- "option": 0,
- "title": "root",
- "sequence": [1, 4],
- "parameters": {
- "history": 1,
- "tabIndex": 0,
- "useLoop": false,
- "xpath": "",
- "wait": 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,
- "url": "https://www.ip138.com",
- "links": "https://www.ip138.com",
- "maxWaitTime": 10,
- "scrollType": 0,
- "scrollCount": 1,
- "scrollWaitTime": 1
- }
- },
- {
- "id": -1,
- "index": 2,
- "parentId": 0,
- "type": 1,
- "option": 8,
- "title": "循环",
- "sequence": [3],
- "isInLoop": false,
- "position": 1,
- "parameters": {
- "history": 4,
- "tabIndex": -1,
- "useLoop": false,
- "xpath": "/html/body/p",
- "iframe": true,
- "wait": 0,
- "waitType": 0,
- "beforeJS": "",
- "beforeJSWaitTime": 0,
- "afterJS": "",
- "afterJSWaitTime": 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/p[1]",
- "//p[contains(., '您的iP地址是:[')]",
- "/html/body/p[last()-2]"
- ]
- }
- },
- {
- "id": -1,
- "index": 3,
- "parentId": 2,
- "type": 0,
- "option": 3,
- "title": "提取数据",
- "sequence": [],
- "isInLoop": true,
- "position": 0,
- "parameters": {
- "history": 4,
- "tabIndex": -1,
- "useLoop": false,
- "xpath": "",
- "iframe": true,
- "wait": 0,
- "waitType": 0,
- "beforeJS": "",
- "beforeJSWaitTime": 0,
- "afterJS": "",
- "afterJSWaitTime": 0,
- "paras": [
- {
- "nodeType": 0,
- "contentType": 1,
- "relative": true,
- "name": "参数1_文本",
- "desc": "",
- "relativeXPath": "",
- "allXPaths": [
- "",
- "//p[contains(., '您的iP地址是:[')]",
- "/html/body/p[last()-2]"
- ],
- "exampleValues": [
- { "num": 0, "value": "您的iP地址是:[]来自:新加坡Singtel" }
- ],
- "unique_index": "",
- "iframe": true,
- "default": "",
- "beforeJS": "",
- "beforeJSWaitTime": 0,
- "JS": "",
- "JSWaitTime": 0,
- "afterJS": "",
- "afterJSWaitTime": 0,
- "downloadPic": 0
- },
- {
- "nodeType": 1,
- "contentType": 0,
- "relative": true,
- "name": "参数2_链接文本",
- "desc": "",
- "relativeXPath": "/a[1]",
- "allXPaths": [
- "/a[1]",
- "//a[contains(., '220.255.29')]",
- "/html/body/p[last()-2]/a[last()-1]"
- ],
- "exampleValues": [{ "num": 0, "value": "220.255.29.208" }],
- "unique_index": "/a[1]",
- "iframe": true,
- "default": "",
- "beforeJS": "",
- "beforeJSWaitTime": 0,
- "JS": "",
- "JSWaitTime": 0,
- "afterJS": "",
- "afterJSWaitTime": 0,
- "downloadPic": 0
- },
- {
- "nodeType": 2,
- "contentType": 0,
- "relative": true,
- "name": "参数3_链接地址",
- "desc": "",
- "relativeXPath": "/a[1]",
- "allXPaths": [
- "/a[1]",
- "//a[contains(., '220.255.29')]",
- "/html/body/p[last()-2]/a[last()-1]"
- ],
- "exampleValues": [
- {
- "num": 0,
- "value": "https://www.ip138.com/iplookup.php?ip=220.255.29.208&action=2"
- }
- ],
- "unique_index": "/a[1]",
- "iframe": true,
- "default": "",
- "beforeJS": "",
- "beforeJSWaitTime": 0,
- "JS": "",
- "JSWaitTime": 0,
- "afterJS": "",
- "afterJSWaitTime": 0,
- "downloadPic": 0
- },
- {
- "nodeType": 1,
- "contentType": 0,
- "relative": true,
- "name": "参数4_链接文本",
- "desc": "",
- "relativeXPath": "/a[2]",
- "allXPaths": [
- "/a[2]",
- "//a[contains(., '')]",
- "/html/body/p[last()-2]/a"
- ],
- "exampleValues": [{ "num": 0, "value": "" }],
- "unique_index": "/a[2]",
- "iframe": true,
- "default": "",
- "beforeJS": "",
- "beforeJSWaitTime": 0,
- "JS": "",
- "JSWaitTime": 0,
- "afterJS": "",
- "afterJSWaitTime": 0,
- "downloadPic": 0
- },
- {
- "nodeType": 2,
- "contentType": 0,
- "relative": true,
- "name": "参数5_链接地址",
- "desc": "",
- "relativeXPath": "/a[2]",
- "allXPaths": [
- "/a[2]",
- "//a[contains(., '')]",
- "/html/body/p[last()-2]/a"
- ],
- "exampleValues": [
- { "num": 0, "value": "https://www.ipshudi.com/" }
- ],
- "unique_index": "/a[2]",
- "iframe": true,
- "default": "",
- "beforeJS": "",
- "beforeJSWaitTime": 0,
- "JS": "",
- "JSWaitTime": 0,
- "afterJS": "",
- "afterJSWaitTime": 0,
- "downloadPic": 0
- },
- {
- "nodeType": 4,
- "contentType": 1,
- "relative": true,
- "name": "参数6_图片地址",
- "desc": "",
- "relativeXPath": "/a[2]/img[1]",
- "allXPaths": [
- "/a[2]/img[1]",
- "//img[contains(., '')]",
- "/html/body/p[last()-2]/a/img"
- ],
- "exampleValues": [
- { "num": 0, "value": "https://6.ipchaxun.net/220.255.29.208.gif" }
- ],
- "unique_index": "/a[2]/img[1]",
- "iframe": true,
- "default": "",
- "beforeJS": "",
- "beforeJSWaitTime": 0,
- "JS": "",
- "JSWaitTime": 0,
- "afterJS": "",
- "afterJSWaitTime": 0,
- "downloadPic": 0
- },
- {
- "nodeType": 0,
- "contentType": 1,
- "relative": true,
- "name": "参数7_文本",
- "desc": "",
- "relativeXPath": "/a[1]/font[1]",
- "allXPaths": [
- "/a[1]/font[1]",
- "//font[contains(., 'ip查询api接口')]",
- "/html/body/p[last()-1]/a/font"
- ],
- "exampleValues": [{ "num": 1, "value": "ip查询api接口" }],
- "unique_index": "/a[1]/font[1]",
- "iframe": true,
- "default": "",
- "beforeJS": "",
- "beforeJSWaitTime": 0,
- "JS": "",
- "JSWaitTime": 0,
- "afterJS": "",
- "afterJSWaitTime": 0,
- "downloadPic": 0
- }
- ],
- "loopType": 1
- }
- },
- {
- "id": 2,
- "index": 4,
- "parentId": 0,
- "type": 0,
- "option": 3,
- "title": "提取数据",
- "sequence": [],
- "isInLoop": false,
- "position": 1,
- "parameters": {
- "history": 3,
- "tabIndex": -1,
- "useLoop": false,
- "xpath": "",
- "iframe": true,
- "wait": 0,
- "waitType": 0,
- "beforeJS": "",
- "beforeJSWaitTime": 0,
- "afterJS": "",
- "afterJSWaitTime": 0,
- "paras": [
- {
- "nodeType": 0,
- "contentType": 0,
- "relative": false,
- "name": "参数1_文本",
- "desc": "",
- "extractType": 0,
- "relativeXPath": "/html/body/center[1]/h1[1]",
- "allXPaths": [
- "/html/body/center[1]/h1[1]",
- "//h1[contains(., '502 Bad Ga')]",
- "/html/body/center[last()-1]/h1"
- ],
- "exampleValues": [{ "num": 0, "value": "502 Bad Gateway" }],
- "unique_index": "l37gwwpsg29ljnkgn7r",
- "iframe": true,
- "default": "",
- "beforeJS": "",
- "beforeJSWaitTime": 0,
- "JS": "",
- "JSWaitTime": 0,
- "afterJS": "",
- "afterJSWaitTime": 0,
- "downloadPic": 0
- }
- ]
- }
- }
- ]
-}
+{"id":118,"name":"iP地址查询 502","url":"https://www.ip138.com","links":"https://www.ip138.com","create_time":"7/4/2023, 7:41:22 PM","version":"0.3.5","saveThreshold":10,"cloudflare":0,"environment":0,"containJudge":false,"desc":"https://www.ip138.com","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.ip138.com","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"https://www.ip138.com"}],"outputParameters":[{"id":0,"name":"参数1_文本","desc":"","type":"string","exampleValue":"502 Bad Gateway"}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,4],"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":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,"url":"https://www.ip138.com","links":"https://www.ip138.com","maxWaitTime":10,"scrollType":0,"scrollCount":1,"scrollWaitTime":1}},{"id":-1,"index":2,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[3],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"/html/body/p","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":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/p[1]","//p[contains(., '您的iP地址是:[')]","/html/body/p[last()-2]"]}},{"id":-1,"index":3,"parentId":2,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":1,"relative":true,"name":"参数1_文本","desc":"","relativeXPath":"","allXPaths":["","//p[contains(., '您的iP地址是:[')]","/html/body/p[last()-2]"],"exampleValues":[{"num":0,"value":"您的iP地址是:[]来自:新加坡Singtel"}],"unique_index":"","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":1,"contentType":0,"relative":true,"name":"参数2_链接文本","desc":"","relativeXPath":"/a[1]","allXPaths":["/a[1]","//a[contains(., '220.255.29')]","/html/body/p[last()-2]/a[last()-1]"],"exampleValues":[{"num":0,"value":"220.255.29.208"}],"unique_index":"/a[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":2,"contentType":0,"relative":true,"name":"参数3_链接地址","desc":"","relativeXPath":"/a[1]","allXPaths":["/a[1]","//a[contains(., '220.255.29')]","/html/body/p[last()-2]/a[last()-1]"],"exampleValues":[{"num":0,"value":"https://www.ip138.com/iplookup.php?ip=220.255.29.208&action=2"}],"unique_index":"/a[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":1,"contentType":0,"relative":true,"name":"参数4_链接文本","desc":"","relativeXPath":"/a[2]","allXPaths":["/a[2]","//a[contains(., '')]","/html/body/p[last()-2]/a"],"exampleValues":[{"num":0,"value":""}],"unique_index":"/a[2]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":2,"contentType":0,"relative":true,"name":"参数5_链接地址","desc":"","relativeXPath":"/a[2]","allXPaths":["/a[2]","//a[contains(., '')]","/html/body/p[last()-2]/a"],"exampleValues":[{"num":0,"value":"https://www.ipshudi.com/"}],"unique_index":"/a[2]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":4,"contentType":1,"relative":true,"name":"参数6_图片地址","desc":"","relativeXPath":"/a[2]/img[1]","allXPaths":["/a[2]/img[1]","//img[contains(., '')]","/html/body/p[last()-2]/a/img"],"exampleValues":[{"num":0,"value":"https://6.ipchaxun.net/220.255.29.208.gif"}],"unique_index":"/a[2]/img[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数7_文本","desc":"","relativeXPath":"/a[1]/font[1]","allXPaths":["/a[1]/font[1]","//font[contains(., 'ip查询api接口')]","/html/body/p[last()-1]/a/font"],"exampleValues":[{"num":1,"value":"ip查询api接口"}],"unique_index":"/a[1]/font[1]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}],"loopType":1}},{"id":2,"index":4,"parentId":0,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":false,"position":1,"parameters":{"history":3,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":0,"relative":false,"name":"参数1_文本","desc":"","extractType":0,"relativeXPath":"/html/body/center[1]/h1[1]","allXPaths":["/html/body/center[1]/h1[1]","//h1[contains(., '502 Bad Ga')]","/html/body/center[last()-1]/h1"],"exampleValues":[{"num":0,"value":"502 Bad Gateway"}],"unique_index":"l37gwwpsg29ljnkgn7r","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}]}}]}
\ No newline at end of file
diff --git a/ElectronJS/tasks/124.json b/ElectronJS/tasks/124.json
new file mode 100644
index 0000000..81ba39f
--- /dev/null
+++ b/ElectronJS/tasks/124.json
@@ -0,0 +1 @@
+{"id":124,"name":"Dynamic Iframe","url":"https://www.easyspider.cn/iframe.html","links":"https://www.easyspider.cn/iframe.html","create_time":"7/4/2023, 8:25:10 PM","version":"0.3.5","saveThreshold":10,"cloudflare":0,"environment":0,"containJudge":false,"desc":"https://www.easyspider.cn/iframe.html","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.easyspider.cn/iframe.html","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"https://www.easyspider.cn/iframe.html"}],"outputParameters":[{"id":0,"name":"参数1_文本","desc":"","type":"string","exampleValue":"IFRAME TEST"},{"id":1,"name":"参数2_链接地址","desc":"","type":"string","exampleValue":"https://github.com/NaiboWang/EasySpider/wiki"},{"id":2,"name":"参数3_文本","desc":"","type":"string","exampleValue":"Row 1, Cell 1"},{"id":3,"name":"参数4_文本","desc":"","type":"string","exampleValue":"EasySpider: Visual Web Crawler"},{"id":4,"name":"参数5_文本","desc":"","type":"string","exampleValue":"Row1,Cell1"},{"id":5,"name":"参数6_文本","desc":"","type":"string","exampleValue":"Row1,Cell2"},{"id":6,"name":"参数7_文本","desc":"","type":"string","exampleValue":"Header1"},{"id":7,"name":"参数8_文本","desc":"","type":"string","exampleValue":"Header2"},{"id":8,"name":"参数10_文本","desc":"","type":"string","exampleValue":"IFRAME TEST"},{"id":9,"name":"参数11_文本","desc":"","type":"string","exampleValue":"Designandexecutewebscrapingtasksvisually,justlikeusingExcel,regardlessofcodingexperience."}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,8,9,11],"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":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,"url":"https://www.easyspider.cn/iframe.html","links":"https://www.easyspider.cn/iframe.html","maxWaitTime":10,"scrollType":0,"scrollCount":1,"scrollWaitTime":1}},{"id":-1,"index":2,"parentId":0,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":0,"relative":false,"name":"参数1_文本","desc":"","extractType":0,"relativeXPath":"/html/body/h1[1]","allXPaths":["/html/body/h1[1]","//h1[contains(., 'IFRAME TES')]","/html/body/h1"],"exampleValues":[{"num":0,"value":"IFRAME TEST"}],"unique_index":"c5t4uk4z7juljo8jmu7","iframe":false,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}]}},{"id":-1,"index":3,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[4],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"/html/body/table[1]/tbody[1]/tr","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":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/table[1]/tbody[1]/tr[1]","//tr[contains(., '')]","/html/body/table/tbody/tr[last()-2]"]}},{"id":-1,"index":4,"parentId":2,"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,"paras":[{"nodeType":0,"contentType":1,"relative":true,"name":"参数1_文本","desc":"","relativeXPath":"/td[1]","allXPaths":["/td[1]","//td[contains(., 'Row 1, Cel')]","/html/body/table/tbody/tr[last()-1]/td[last()-1]"],"exampleValues":[{"num":0,"value":"Row1,Cell1"}],"unique_index":"/td[1]","iframe":false,"default":"","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(., 'Row 1, Cel')]","/html/body/table/tbody/tr[last()-1]/td"],"exampleValues":[{"num":0,"value":"Row1,Cell2"}],"unique_index":"/td[2]","iframe":false,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数3_文本","desc":"","relativeXPath":"/th[1]","allXPaths":["/th[1]","//th[contains(., 'Header 1')]","/html/body/table/tbody/tr[last()-2]/th[last()-1]"],"exampleValues":[{"num":1,"value":"Header1"}],"unique_index":"/th[1]","iframe":false,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数4_文本","desc":"","relativeXPath":"/th[2]","allXPaths":["/th[2]","//th[contains(., 'Header 2')]","/html/body/table/tbody/tr[last()-2]/th"],"exampleValues":[{"num":1,"value":"Header2"}],"unique_index":"/th[2]","iframe":false,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}],"loopType":1}},{"id":-1,"index":5,"parentId":0,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":0,"relative":false,"name":"参数1_文本","desc":"","extractType":0,"relativeXPath":"/html/body/div[2]/div[1]/div[1]/ul[1]/li[1]","allXPaths":["/html/body/div[2]/div[1]/div[1]/ul[1]/li[1]","//li[contains(., 'Home')]","//LI[@class='nav-item']","/html/body/div[last()-7]/div/div/ul/li[last()-5]"],"exampleValues":[{"num":0,"value":"Home"}],"unique_index":"gvkh1kd9fd8ljo8k8qg","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}]}},{"id":-1,"index":6,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[7],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"/html/body/div[3]/div[1]/div","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":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[3]/div[1]/div[1]","//div[contains(., '')]","//DIV[@class='func-item']","/html/body/div[last()-6]/div/div[last()-2]"]}},{"id":-1,"index":7,"parentId":2,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":1,"relative":true,"name":"参数1_文本","desc":"","relativeXPath":"/div[2]","allXPaths":["/div[2]","//div[contains(., 'Suitable f')]","//DIV[@class='func-title']","/html/body/div[last()-6]/div/div[last()-2]/div[last()-1]"],"exampleValues":[{"num":0,"value":"SuitableforAnyoneintheWorkplace"}],"unique_index":"/div[2]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数2_文本","desc":"","relativeXPath":"/div[3]","allXPaths":["/div[3]","//div[contains(., 'Design and')]","//DIV[@class='func-desc']","/html/body/div[last()-6]/div/div[last()-2]/div"],"exampleValues":[{"num":0,"value":"Designandexecutewebscrapingtasksvisually,justlikeusingExcel,regardlessofcodingexperience."}],"unique_index":"/div[3]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}]}},{"id":2,"index":8,"parentId":0,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":false,"position":1,"parameters":{"history":3,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":0,"relative":false,"name":"参数1_文本","desc":"","extractType":0,"relativeXPath":"/html/body/h1[1]","allXPaths":["/html/body/h1[1]","//h1[contains(., 'IFRAME TES')]","/html/body/h1"],"exampleValues":[{"num":0,"value":"IFRAME TEST"}],"unique_index":"jamaji3jfhljo94msg","iframe":false,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":2,"contentType":0,"relative":false,"name":"参数2_链接地址","desc":"","relativeXPath":"/html/body/div[2]/div[1]/div[1]/ul[1]/li[2]/a[1]","allXPaths":["/html/body/div[2]/div[1]/div[1]/ul[1]/li[2]/a[1]","//a[contains(., 'Documentat')]","/html/body/div[last()-7]/div/div/ul/li[last()-4]/a"],"exampleValues":[{"num":0,"value":"https://github.com/NaiboWang/EasySpider/wiki"}],"unique_index":"bud5cdkjta7ljo94wf8","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":0,"relative":false,"name":"参数3_文本","desc":"","extractType":0,"relativeXPath":"/html/body/table[1]/tbody[1]/tr[2]/td[1]","allXPaths":["/html/body/table[1]/tbody[1]/tr[2]/td[1]","//td[contains(., 'Row 1, Cel')]","/html/body/table/tbody/tr[last()-1]/td[last()-1]"],"exampleValues":[{"num":0,"value":"Row 1, Cell 1"}],"unique_index":"wvcxdwkrvutljo954sk","iframe":false,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":0,"relative":false,"name":"参数4_文本","desc":"","extractType":0,"relativeXPath":"/html/body/div[1]/div[1]/div[1]/div[1]","allXPaths":["/html/body/div[1]/div[1]/div[1]/div[1]","//div[contains(., 'EasySpider')]","//DIV[@class='move-title']","/html/body/div[last()-8]/div/div[last()-2]/div[last()-4]"],"exampleValues":[{"num":0,"value":"EasySpider: Visual Web Crawler"}],"unique_index":"a2i77k15454ljo958tg","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}]}},{"id":3,"index":9,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[10],"isInLoop":false,"position":2,"parameters":{"history":3,"tabIndex":-1,"useLoop":false,"xpath":"/html/body/table[1]/tbody[1]/tr","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":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/table[1]/tbody[1]/tr[1]","//tr[contains(., '')]","/html/body/table/tbody/tr[last()-2]"]}},{"id":5,"index":10,"parentId":3,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":3,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":1,"relative":true,"name":"参数5_文本","desc":"","relativeXPath":"/td[1]","allXPaths":["/td[1]","//td[contains(., 'Row 1, Cel')]","/html/body/table/tbody/tr[last()-1]/td[last()-1]"],"exampleValues":[{"num":0,"value":"Row1,Cell1"}],"unique_index":"/td[1]","iframe":false,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数6_文本","desc":"","relativeXPath":"/td[2]","allXPaths":["/td[2]","//td[contains(., 'Row 1, Cel')]","/html/body/table/tbody/tr[last()-1]/td"],"exampleValues":[{"num":0,"value":"Row1,Cell2"}],"unique_index":"/td[2]","iframe":false,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数7_文本","desc":"","relativeXPath":"/th[1]","allXPaths":["/th[1]","//th[contains(., 'Header 1')]","/html/body/table/tbody/tr[last()-2]/th[last()-1]"],"exampleValues":[{"num":1,"value":"Header1"}],"unique_index":"/th[1]","iframe":false,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数8_文本","desc":"","relativeXPath":"/th[2]","allXPaths":["/th[2]","//th[contains(., 'Header 2')]","/html/body/table/tbody/tr[last()-2]/th"],"exampleValues":[{"num":1,"value":"Header2"}],"unique_index":"/th[2]","iframe":false,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":0,"relative":false,"name":"参数10_文本","desc":"","extractType":0,"relativeXPath":"/html/body/h1[1]","allXPaths":["/html/body/h1[1]","//h1[contains(., 'IFRAME TES')]","/html/body/h1"],"exampleValues":[{"num":0,"value":"IFRAME TEST"}],"unique_index":"hm0p4o1gussljo973rk","iframe":false,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}]}},{"id":4,"index":11,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[12],"isInLoop":false,"position":3,"parameters":{"history":3,"tabIndex":-1,"useLoop":false,"xpath":"/html/body/div[3]/div[1]/div","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":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[3]/div[1]/div[1]","//div[contains(., '')]","//DIV[@class='func-item']","/html/body/div[last()-6]/div/div[last()-2]"]}},{"id":6,"index":12,"parentId":4,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":3,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":1,"relative":true,"name":"参数10_文本","desc":"","relativeXPath":"/div[2]","allXPaths":["/div[2]","//div[contains(., 'Suitable f')]","//DIV[@class='func-title']","/html/body/div[last()-6]/div/div[last()-2]/div[last()-1]"],"exampleValues":[{"num":0,"value":"SuitableforAnyoneintheWorkplace"}],"unique_index":"/div[2]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":0,"contentType":1,"relative":true,"name":"参数11_文本","desc":"","relativeXPath":"/div[3]","allXPaths":["/div[3]","//div[contains(., 'Design and')]","//DIV[@class='func-desc']","/html/body/div[last()-6]/div/div[last()-2]/div"],"exampleValues":[{"num":0,"value":"Designandexecutewebscrapingtasksvisually,justlikeusingExcel,regardlessofcodingexperience."}],"unique_index":"/div[3]","iframe":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}]}}]}
\ No newline at end of file
diff --git a/ElectronJS/tasks/125.json b/ElectronJS/tasks/125.json
new file mode 100644
index 0000000..6691189
--- /dev/null
+++ b/ElectronJS/tasks/125.json
@@ -0,0 +1 @@
+{"id":125,"name":"Dynamic Iframe","url":"http://localhost:8074/taskGrid/test_pages/iframe.html?address=http://www.ceic.ac.cn/history","links":"http://localhost:8074/taskGrid/test_pages/iframe.html?address=http://www.ceic.ac.cn/history","create_time":"7/4/2023, 9:08:15 PM","version":"0.3.5","saveThreshold":10,"cloudflare":0,"environment":0,"containJudge":false,"desc":"http://localhost:8074/taskGrid/test_pages/iframe.html?address=http://www.ceic.ac.cn/history","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"http://localhost:8074/taskGrid/test_pages/iframe.html?address=http://www.ceic.ac.cn/history","desc":"要采集的网址列表,多行以\\n分开","type":"string","exampleValue":"http://localhost:8074/taskGrid/test_pages/iframe.html?address=http://www.ceic.ac.cn/history"},{"id":1,"name":"inputText_1","nodeName":"输入文字","nodeId":6,"desc":"要输入的文本,如京东搜索框输入:电脑","type":"string","exampleValue":"12","value":"12"},{"id":2,"name":"loopTimes_循环1_2","nodeId":8,"nodeName":"循环1","desc":"循环循环1执行的次数(0代表无限循环)","type":"int","exampleValue":0,"value":0}],"outputParameters":[{"id":0,"name":"参数1_文本","desc":"","type":"string","exampleValue":"2.2"},{"id":1,"name":"参数2_文本","desc":"","type":"string","exampleValue":"2023-06-1422:24:41"},{"id":2,"name":"参数3_文本","desc":"","type":"string","exampleValue":"37.12"},{"id":3,"name":"参数4_文本","desc":"","type":"string","exampleValue":"114.78"},{"id":4,"name":"参数5_文本","desc":"","type":"string","exampleValue":"10"},{"id":5,"name":"参数6_链接文本","desc":"","type":"string","exampleValue":"河北邢台市任泽区"},{"id":6,"name":"参数7_链接地址","desc":"","type":"string","exampleValue":"https://news.ceic.ac.cn/CD20230614222441.html"},{"id":7,"name":"参数8_文本","desc":"","type":"string","exampleValue":"震级(M)"},{"id":8,"name":"参数9_文本","desc":"","type":"string","exampleValue":"发震时刻(UTC+8)"},{"id":9,"name":"参数10_文本","desc":"","type":"string","exampleValue":"纬度(°)"},{"id":10,"name":"参数11_文本","desc":"","type":"string","exampleValue":"经度(°)"},{"id":11,"name":"参数12_文本","desc":"","type":"string","exampleValue":"深度(千米)"},{"id":12,"name":"参数13_文本","desc":"","type":"string","exampleValue":"参考位置"},{"id":13,"name":"参数111_文本","desc":"","type":"string","exampleValue":"IFRAME TEST"}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,6,7,12,8],"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0},"isInLoop":false},{"id":1,"index":1,"parentId":0,"type":0,"option":1,"title":"打开网页","sequence":[],"isInLoop":false,"position":0,"parameters":{"useLoop":false,"xpath":"","wait":10,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"url":"http://localhost:8074/taskGrid/test_pages/iframe.html?address=http://www.ceic.ac.cn/history","links":"http://localhost:8074/taskGrid/test_pages/iframe.html?address=http://www.ceic.ac.cn/history","maxWaitTime":10,"scrollType":0,"scrollCount":1,"scrollWaitTime":1}},{"id":-1,"index":2,"parentId":0,"type":0,"option":4,"title":"输入文字","sequence":[],"isInLoop":false,"position":1,"parameters":{"history":5,"tabIndex":-1,"useLoop":false,"xpath":"//*[@id=\"weidu1\"]","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"value":"15","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":-1,"index":3,"parentId":0,"type":0,"option":2,"title":"点击元素","sequence":[],"isInLoop":false,"position":2,"parameters":{"history":5,"tabIndex":-1,"useLoop":false,"xpath":"//*[@id=\"search\"]","iframe":true,"wait":2,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"clickWay":0,"maxWaitTime":10,"paras":[],"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":-1,"index":4,"parentId":0,"type":0,"option":4,"title":"输入文字","sequence":[],"isInLoop":false,"position":1,"parameters":{"history":6,"tabIndex":-1,"useLoop":false,"xpath":"//*[@id=\"weidu1\"]","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"value":"11","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":-1,"index":5,"parentId":0,"type":0,"option":4,"title":"输入文字","sequence":[],"isInLoop":false,"position":1,"parameters":{"history":6,"tabIndex":-1,"useLoop":false,"xpath":"//*[@id=\"weidu1\"]","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"value":"123","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":2,"index":6,"parentId":0,"type":0,"option":4,"title":"输入文字","sequence":[],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"//*[@id=\"weidu1\"]","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"value":"12","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":3,"index":7,"parentId":0,"type":0,"option":2,"title":"点击元素","sequence":[],"isInLoop":false,"position":2,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"//*[@id=\"search\"]","iframe":true,"wait":2,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"clickWay":0,"maxWaitTime":10,"paras":[],"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":5,"index":8,"parentId":0,"type":1,"option":8,"title":"循环1","sequence":[10,9],"isInLoop":false,"position":4,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"//*[contains(@class, \"pagination\")]/ul[1]/li[last()-1]/a[1]","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":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[12]/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":7,"index":9,"parentId":5,"type":0,"option":2,"title":"点击元素","sequence":[],"isInLoop":true,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":true,"xpath":"//*[contains(@class, \"pagination\")]/ul[1]/li[12]/a[1]","iframe":true,"wait":2,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"clickWay":0,"maxWaitTime":10,"paras":[],"allXPaths":["/html/body/div[1]/div[3]/div[1]/div[1]/div[2]/div[1]/div[2]/div[1]/div[1]/ul[1]/li[12]/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":6,"index":10,"parentId":5,"type":1,"option":8,"title":"循环23123","sequence":[11],"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":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":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":8,"index":11,"parentId":6,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":true,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":1,"relative":true,"name":"参数1_文本","desc":"","relativeXPath":"/td[1]","allXPaths":["/td[1]","//td[contains(., '2.2')]","/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":"2.2"}],"unique_index":"/td[1]","iframe":true,"default":"","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-06-14')]","/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-06-1422:24:41"}],"unique_index":"/td[2]","iframe":true,"default":"","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.12')]","/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.12"}],"unique_index":"/td[3]","iframe":true,"default":"","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(., '114.78')]","/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":"114.78"}],"unique_index":"/td[4]","iframe":true,"default":"","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(., '10')]","/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":"10"}],"unique_index":"/td[5]","iframe":true,"default":"","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":true,"default":"","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/CD20230614222441.html"}],"unique_index":"/td[6]/a[1]","iframe":true,"default":"","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":true,"default":"","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":true,"default":"","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":true,"default":"","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":true,"default":"","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":true,"default":"","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":true,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}],"loopType":1}},{"id":4,"index":12,"parentId":0,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":false,"position":3,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":0,"contentType":0,"relative":false,"name":"参数111_文本","desc":"","extractType":0,"relativeXPath":"/html/body/h1[1]","allXPaths":["/html/body/h1[1]","//h1[contains(., 'IFRAME TES')]","/html/body/h1"],"exampleValues":[{"num":0,"value":"IFRAME TEST"}],"unique_index":"0i681vbofdwrljo9xcbf","iframe":false,"default":"","beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}]}}]}
\ No newline at end of file
diff --git a/ExecuteStage/.vscode/launch.json b/ExecuteStage/.vscode/launch.json
index 292941f..128e00b 100644
--- a/ExecuteStage/.vscode/launch.json
+++ b/ExecuteStage/.vscode/launch.json
@@ -10,7 +10,7 @@
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true,
- "args": ["--id", "[18]", "--read_type", "remote", "--headless", "0"]
+ "args": ["--id", "[29]", "--read_type", "remote", "--headless", "0"]
// "args": ["--id", "[2]", "--read_type", "remote", "--headless", "0", "--saved_file_name", "YOUTUBE"]
// "args": ["--id", "[44]", "--headless", "0", "--user_data", "1"]
}
diff --git a/ExecuteStage/easyspider_executestage.py b/ExecuteStage/easyspider_executestage.py
index 43061e9..331f1a2 100644
--- a/ExecuteStage/easyspider_executestage.py
+++ b/ExecuteStage/easyspider_executestage.py
@@ -123,11 +123,11 @@ class BrowserThread(Thread):
except:
para["iframe"] = False
if para["beforeJS"] == "" and para["afterJS"] == "" and para["contentType"] <= 1 and para["nodeType"] <= 2:
- # iframe中提取数据的绝对寻址操作不可优化
- if para["relative"] == False and para["iframe"] == True:
- para["optimizable"] = False
- else:
- para["optimizable"] = True
+ # # iframe中提取数据的绝对寻址操作不可优化
+ # if para["relative"] == False and para["iframe"] == True:
+ # para["optimizable"] = False
+ # else:
+ para["optimizable"] = True
else:
para["optimizable"] = False
@@ -465,8 +465,8 @@ class BrowserThread(Thread):
'return history.length') # 记录本次循环内的history的length
self.history["index"] = thisHistoryLength
self.history["handle"] = thisHandle
- if node["parameters"]["iframe"]:
- self.browser.switch_to.default_content() # 循环前切换到主文档
+ # if node["parameters"]["iframe"]:
+ # self.browser.switch_to.default_content() # 循环前切换到主文档
if int(node["parameters"]["loopType"]) == 0: # 单个元素循环
# 无跳转标签页操作
count = 0 # 执行次数
@@ -651,8 +651,8 @@ class BrowserThread(Thread):
self.executeNode(i, code, node["parameters"]["xpath"], 0)
self.history["index"] = thisHistoryLength
self.history["handle"] = self.browser.current_window_handle
- if node["parameters"]["iframe"]:
- self.browser.switch_to.default_content()
+ # if node["parameters"]["iframe"]:
+ # self.browser.switch_to.default_content()
self.scrollDown(node["parameters"])
# 打开网页事件
@@ -840,8 +840,8 @@ class BrowserThread(Thread):
self.recordLog("Cannot find element:" +
path + ", please try to set the wait time before executing this operation")
print("找不到要点击的元素:" + path + ",请尝试在执行此操作前设置等待时间")
- if para["iframe"]:
- self.browser.switch_to.default_content()
+ # if para["iframe"]:
+ # self.browser.switch_to.default_content()
waitTime = float(para["wait"]) + 0.01 # 点击之后等待
try:
waitType = int(para["waitType"])
@@ -1034,6 +1034,10 @@ class BrowserThread(Thread):
for p in para["paras"]:
if p["optimizable"]:
try:
+ # 只有当前环境不变变化才可以快速提取数据
+ if self.browser.iframe_env != p["iframe"]:
+ p["optimizable"] = False
+ continue
p["relativeXPath"] = p["relativeXPath"].lower()
if p["nodeType"] == 2:
xpath = p["relativeXPath"] + "/@href"
diff --git a/ExecuteStage/myChrome.py b/ExecuteStage/myChrome.py
index 6fd6fe7..d1a5799 100644
--- a/ExecuteStage/myChrome.py
+++ b/ExecuteStage/myChrome.py
@@ -19,7 +19,15 @@ desired_capabilities["pageLoadStrategy"] = "none"
class MyChrome(webdriver.Chrome):
+
+ def __init__(self, *args, **kwargs):
+ self.iframe_env = False # 现在的环境是root还是iframe
+ super().__init__(*args, **kwargs) # 调用父类的 __init__
+
def find_element(self, by=By.ID, value=None, iframe=False):
+ if self.iframe_env:
+ super().switch_to.default_content()
+ self.iframe_env = False
# 在这里改变查找元素的行为
if iframe:
# 获取所有的 iframe
@@ -32,6 +40,7 @@ class MyChrome(webdriver.Chrome):
for iframe in iframes:
# 切换到 iframe
super().switch_to.frame(iframe)
+ self.iframe_env = True
try:
# 在 iframe 中查找并点击元素
# 在这个例子中,我们查找 XPath 为 '//div[1]' 的元素
@@ -49,6 +58,9 @@ class MyChrome(webdriver.Chrome):
return super().find_element(by=by, value=value)
def find_elements(self, by=By.ID, value=None, iframe=False):
+ if self.iframe_env:
+ super().switch_to.default_content()
+ self.iframe_env = False
# 在这里改变查找元素的行为
if iframe:
# 获取所有的 iframe
@@ -58,6 +70,7 @@ class MyChrome(webdriver.Chrome):
for iframe in iframes:
# 切换到 iframe
super().switch_to.frame(iframe)
+ self.iframe_env = True
try:
# 在 iframe 中查找并点击元素
# 在这个例子中,我们查找 XPath 为 '//div[1]' 的元素