在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以外的其他浏览器上解决此问题,请告诉我该怎么做。
我真诚地感谢您的任何建议!非常感谢!:)
答案 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