Javascript 修复 imacros 中断
The fixing imacros interruption with Javascript
我目前正在从网站下载一些文件。由于数据量大,需要百万次点击,所以我选择使用iMacros来完成点击。但网站不稳定,时不时中断自动点击。我让它解决了一些问题,但仍然存在一个问题。
图片显示问题。它只是停止而不继续。它不会 return 出现错误,而只是停止。
在每一行中,它们旨在单击按钮或填充某些上下文。有时网站响应缓慢,按钮或文本框未按时显示。因此,宏就停在那里。我惊讶地发现它不是 return 出错而是停在那里。
我正在寻找解决方案,以便每当它这样停止时,我可以重新开始当前循环并且不会错过当前行。
以下是imacros的代码。供参考。如果您能帮我解决这个问题,我将不胜感激。谢谢!
1 TAB OPEN
2 WAIT SECONDS=1
3 TAB T=2
4 WAIT SECONDS=1
5
6 SET myLoop EVAL("if ('{{myLoop}}' == '__undefined__') ml = 1576; else if ('{{!EXTRACT}}' == '' || '{{!EXTRACT}}' == '#EANF#') ml = ml; else ml = ++ml; ml;")
7 SET !EXTRACT NULL
8
9 SET !DATASOURCE ???(????).csv
10 SET !DATASOURCE_COLUMNS 2
11 SET !DATASOURCE_LINE {{myLoop}}
12 SET !EXTRACT_TEST_POPUP NO
13 SET !TIMEOUT_STEP 40
14
15 SET !ERRORIGNORE YES
16 URL GOTO=http://202.39.224.50/FMS_Plic/#
17 WAIT SECONDS=5
18 TAG POS=1 TYPE=A ATTR=TXT:????
19
20 TAG POS=1 TYPE=A ATTR=TXT:????
21 WAIT SECONDS=3
22
23 FRAME F=2
24 TAG POS=1 TYPE=A ATTR=ID:ddlDC_Arrow
25 TAG POS=1 TYPE=LI ATTR=TXT:???(????)
26
27 TAG POS=1 TYPE=LI ATTR=TXT:???(????)
28 WAIT SECONDS=3
29
30 TAG POS=1 TYPE=A ATTR=ID:ddlCar_Arrow
31 TAG POS=1 TYPE=LI ATTR=TXT:{{!COL1}}
32
33 TAG POS=1 TYPE=INPUT:TEXT FORM=ID:form1 ATTR=ID:date1 CONTENT={{!COL2}}
34
35 TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:form1 ATTR=ID:btnQuery
36 WAIT SECONDS=15
37
38 TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:form1 ATTR=ID:Cexcel EXTRACT=TXT
39 TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:form1 ATTR=ID:Cexcel
40 WAIT SECONDS=60
41
42 TAB CLOSE
43 WAIT SECONDS=1
44 SET !ERRORIGNORE NO
尝试按以下方式修改 myLoop
变量:
SET myLoop EVAL("if ('{{myLoop}}' == '__undefined__') {try {ml = (confirm('CONTINUE FROM THE LOOP #' + ml + ' ?') ? ml : 1)} catch(e) {ml = 1;}} else if ('{{!EXTRACT}}' == '' || '{{!EXTRACT}}' == '#EANF#') ml = ml; else ml = ++ml; ml;")
(我想你上面描述的宏停止问题是 'iMacros for Chrome' 的一个错误。所以我的下一个建议可能是使用 'iMacros for Firefox' 及其 JavaScript 脚本接口相反。)
我目前正在从网站下载一些文件。由于数据量大,需要百万次点击,所以我选择使用iMacros来完成点击。但网站不稳定,时不时中断自动点击。我让它解决了一些问题,但仍然存在一个问题。
图片显示问题。它只是停止而不继续。它不会 return 出现错误,而只是停止。
在每一行中,它们旨在单击按钮或填充某些上下文。有时网站响应缓慢,按钮或文本框未按时显示。因此,宏就停在那里。我惊讶地发现它不是 return 出错而是停在那里。
我正在寻找解决方案,以便每当它这样停止时,我可以重新开始当前循环并且不会错过当前行。
以下是imacros的代码。供参考。如果您能帮我解决这个问题,我将不胜感激。谢谢!
1 TAB OPEN
2 WAIT SECONDS=1
3 TAB T=2
4 WAIT SECONDS=1
5
6 SET myLoop EVAL("if ('{{myLoop}}' == '__undefined__') ml = 1576; else if ('{{!EXTRACT}}' == '' || '{{!EXTRACT}}' == '#EANF#') ml = ml; else ml = ++ml; ml;")
7 SET !EXTRACT NULL
8
9 SET !DATASOURCE ???(????).csv
10 SET !DATASOURCE_COLUMNS 2
11 SET !DATASOURCE_LINE {{myLoop}}
12 SET !EXTRACT_TEST_POPUP NO
13 SET !TIMEOUT_STEP 40
14
15 SET !ERRORIGNORE YES
16 URL GOTO=http://202.39.224.50/FMS_Plic/#
17 WAIT SECONDS=5
18 TAG POS=1 TYPE=A ATTR=TXT:????
19
20 TAG POS=1 TYPE=A ATTR=TXT:????
21 WAIT SECONDS=3
22
23 FRAME F=2
24 TAG POS=1 TYPE=A ATTR=ID:ddlDC_Arrow
25 TAG POS=1 TYPE=LI ATTR=TXT:???(????)
26
27 TAG POS=1 TYPE=LI ATTR=TXT:???(????)
28 WAIT SECONDS=3
29
30 TAG POS=1 TYPE=A ATTR=ID:ddlCar_Arrow
31 TAG POS=1 TYPE=LI ATTR=TXT:{{!COL1}}
32
33 TAG POS=1 TYPE=INPUT:TEXT FORM=ID:form1 ATTR=ID:date1 CONTENT={{!COL2}}
34
35 TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:form1 ATTR=ID:btnQuery
36 WAIT SECONDS=15
37
38 TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:form1 ATTR=ID:Cexcel EXTRACT=TXT
39 TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:form1 ATTR=ID:Cexcel
40 WAIT SECONDS=60
41
42 TAB CLOSE
43 WAIT SECONDS=1
44 SET !ERRORIGNORE NO
尝试按以下方式修改 myLoop
变量:
SET myLoop EVAL("if ('{{myLoop}}' == '__undefined__') {try {ml = (confirm('CONTINUE FROM THE LOOP #' + ml + ' ?') ? ml : 1)} catch(e) {ml = 1;}} else if ('{{!EXTRACT}}' == '' || '{{!EXTRACT}}' == '#EANF#') ml = ml; else ml = ++ml; ml;")
(我想你上面描述的宏停止问题是 'iMacros for Chrome' 的一个错误。所以我的下一个建议可能是使用 'iMacros for Firefox' 及其 JavaScript 脚本接口相反。)