使用javascript解决iMacros错误

时间:2016-09-21 05:45:50

标签: javascript imacros

在imacros chrome版本中使用循环时遇到了一个障碍。我希望有人可以帮助我。

我现在正在尝试下载有关几个地区和日期的一些数据。我将特定的区域和日期存储在.csv文件中。我想根据.csv文件中的索引运行iMacros循环,以自动下载这些数据。以下是iMacros中的代码。

VERSION BUILD=844 RECORDER=CR

TAB OPEN
WAIT SECONDS=2
TAB T=2
WAIT SECONDS=2

SET !DATASOURCE Datasource.csv
SET !DATASOURCE_COLUMNS 3
SET !DATASOURCE_LINE {{!LOOP}}

URL GOTO=http://202.39.224.50/FMS_Plic/#
WAIT SECONDS=2

TAG POS=1 TYPE=A ATTR=TXT:MonitorRecord
WAIT SECONDS=5

FRAME F=2
TAG POS=1 TYPE=A ATTR=ID:ddlDC_Arrow
TAG POS=1 TYPE=LI ATTR=TXT:DC1
WAIT SECONDS=10

TAG POS=1 TYPE=A ATTR=ID:ddlCar_Arrow
TAG POS=1 TYPE=LI ATTR=TXT:{{!COL1}}

TAG POS=1 TYPE=INPUT:TEXT FORM=ID:form1 ATTR=ID:date1 CONTENT={{!COL2}}

TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:form1 ATTR=ID:btnQuery
WAIT SECONDS=60

TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:form1 ATTR=ID:Cexcel
WAIT SECONDS=60

TAB CLOSE
WAIT SECONDS=2

iMacros本身的代码没有错,它运行顺畅。但是,问题是网站不稳定,不时崩溃。如果崩溃,iMacros将无法找到报告错误的相关信息,然后退出。由于循环必须从1到300000,如果我手动操作需要花费很多时间。

所以我正在寻找解决这个问题的解决方案。 如果出现错误,请重新启动当前循环,不要跳过(我注意到有人建议使用!ERRORIGNORE。但如果我使用它,将跳过当前循环,这不是我所期望的)。从在线的一些说明,javascript似乎是一个解决方案。但是,我对java以及如何与iMacros一起使用javascript一无所知。如果可以在Chrome以外的其他浏览器上解决此问题,请告诉我该怎么做。

我真诚地感谢您的任何建议!非常感谢!:)

1 个答案:

答案 0 :(得分:0)

我认为这个问题不仅可以通过适用于Firefox的' iMacros来解决。 (及其JavaScript脚本编写接口),但使用' iMacros for Chrome'同样。建议使用!ERRORIGNORE。让我们定义myLoop变量,以便在出现错误时重新启动当前循环。我认为它等同于找不到元素TAG POS=1 TYPE=A ATTR=TXT:MonitorRecord的文本。这是一个尝试和改进的代码:

TAB OPEN
WAIT SECONDS=2
TAB T=2
WAIT SECONDS=2

SET myLoop EVAL("if ('{{myLoop}}' == '__undefined__') ml = 1; else if ('{{!EXTRACT}}' == '' || '{{!EXTRACT}}' == '#EANF#') ml = ml; else ml = ++ml; ml;")
SET !EXTRACT NULL

SET !DATASOURCE Datasource.csv
SET !DATASOURCE_COLUMNS 3
SET !DATASOURCE_LINE {{myLoop}}

SET !ERRORIGNORE YES
URL GOTO=http://202.39.224.50/FMS_Plic/#
WAIT SECONDS=2
TAG POS=1 TYPE=A ATTR=TXT:MonitorRecord EXTRACT=TXT

TAG POS=1 TYPE=A ATTR=TXT:MonitorRecord
WAIT SECONDS=5

FRAME F=2
TAG POS=1 TYPE=A ATTR=ID:ddlDC_Arrow
TAG POS=1 TYPE=LI ATTR=TXT:DC1
WAIT SECONDS=10

TAG POS=1 TYPE=A ATTR=ID:ddlCar_Arrow
TAG POS=1 TYPE=LI ATTR=TXT:{{!COL1}}

TAG POS=1 TYPE=INPUT:TEXT FORM=ID:form1 ATTR=ID:date1 CONTENT={{!COL2}}

TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:form1 ATTR=ID:btnQuery
WAIT SECONDS=60

TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:form1 ATTR=ID:Cexcel
WAIT SECONDS=60

TAB CLOSE
WAIT SECONDS=2
SET !ERRORIGNORE NO