2015-08-16 294 views
0

我正在嘗試從網頁中提取一些數據。我遇到了在某些情況下出現的額外的數據線問題。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將被提取?

在此先感謝您的任何建議。

回答

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=*沒有元素。

0

使用EVAL命令嘗試這樣的事情,所以你可以使用if/else條件:

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

iMacros wiki

閱讀更多