使用 javascript 解决 iMacros 错误
Using javascript to solve iMacros error
我在 imacros chrome 版本中使用循环时遇到了一个障碍。我希望有人能帮助我。
我现在正在尝试下载一些关于几个地区和日期的数据。我将特定地区和日期存储在 .csv 文件中。我想 运行 iMacros 循环根据该 .csv 文件中的索引自动下载这些数据。以下是 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 以及如何将 javascript 与 iMacros 一起使用一无所知。如果这可以在 Chrome 以外的其他浏览器上解决,也请告诉我该怎么做。
我真诚地感谢对此的任何建议!非常感谢!:)
我认为这个问题不仅可以通过 'iMacros for Firefox'(及其 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
我在 imacros chrome 版本中使用循环时遇到了一个障碍。我希望有人能帮助我。
我现在正在尝试下载一些关于几个地区和日期的数据。我将特定地区和日期存储在 .csv 文件中。我想 运行 iMacros 循环根据该 .csv 文件中的索引自动下载这些数据。以下是 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 以及如何将 javascript 与 iMacros 一起使用一无所知。如果这可以在 Chrome 以外的其他浏览器上解决,也请告诉我该怎么做。
我真诚地感谢对此的任何建议!非常感谢!:)
我认为这个问题不仅可以通过 'iMacros for Firefox'(及其 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