iMacros if/else语句如何?
问题描述:
我正在尝试从网页中提取一些数据。我遇到了在某些情况下出现的额外的数据线问题。iMacros if/else语句如何?
这里是我的代码块:
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包含单词“所有者”,则只有POS 114和115将被提取。如果114包含单词“所有者”POS 114,115和116将被提取?
在此先感谢您的任何建议。
答
这是没有应用脚本接口的变体之一。取而代之的是线的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=*
没有元素。
答
使用EVAL
命令尝试这样的事情,所以你可以使用if
/else
条件:
SET NEWVAR EVAL("var s=\"{{!VAR1}}\"; if(!s.match(/owners/g)) {s=\"!VAR1\";} else {s=\"!VAR2\";")
阅读更多