iMacros if / else语句如何?

时间:2015-08-16 05:58:58

标签: imacros

我试图从网页上提取一些数据。我遇到了在某些情况下发生额外数据的问题。

以下是我的代码块:

VERSION BUILD=10.4.28.1074
TAB T=1
TAG POS=114 TYPE=TR ATTR=* EXTRACT=TXT
SET !VAR1 {{!EXTRACT}}
SET !EXTRACT NULL
TAG POS=115 TYPE=TR ATTR=* EXTRACT=TXT
SET !VAR2 {{!EXTRACT}}
SET !EXTRACT NULL
TAG POS=116 TYPE=TR ATTR=* EXTRACT=TXT
ADD !EXTRACT {{!VAR1}}
ADD !EXTRACT {{!VAR2}}
SAVEAS TYPE=EXTRACT FOLDER=\\admin\Documents\iMacros FILE=extracttest2.csv

您会注意到此代码的标记为pos 114,115和116.但是,有时我只需要提取114和115.

POS 114以"所有者:"或"所有者:"。如果"所有者:"然后我只需要提取114和115.如果"所有者:"我需要提取114,115和116.

有没有办法制作if / else语句或其他类型的规则,说明114是否包含单词" Owner"仅提取POS 114和115。如果114包含单词" Owners"将提取POS 114,115和116?

提前感谢任何建议。

2 个答案:

答案 0 :(得分:0)

以下是未应用脚本接口的变体之一。而不是行TAG POS=116 TYPE=TR ATTR=* EXTRACT=TXT添加此块:

SET pos116 EVAL("('{{!VAR1}}'.match(/Owners:/)) ? 116 : 99999;")
SET !ERRORIGNORE YES
SET !TIMEOUT_STEP 0
TAG POS={{pos116}} TYPE=TR ATTR=* EXTRACT=TXT
SET !ERRORIGNORE NO
SET !TIMEOUT_STEP 6
SET !EXTRACT EVAL("('{{!EXTRACT}}' == '#EANF#') ? '' : '{{!EXTRACT}}';")

注意:我认为在网页上没有TAG POS=99999 TYPE=TR ATTR=*的元素。

答案 1 :(得分:0)

使用EVAL命令尝试这样的操作,以便您可以使用if / else条件:

SET NEWVAR EVAL("var s=\"{{!VAR1}}\"; if(!s.match(/owners/g)) {s=\"!VAR1\";} else {s=\"!VAR2\";")

iMacros wiki

了解详情