iMacros是經常用到的工具,比如添加到收藏夾,我的站有幾萬個頁面,一個一個的添加累死也添加不完,當然可以用用批量導入導出的方法,不過用iMacros也有它的好處,比如把頁面導入到Excil再用Imacros自動收藏。還可以用它來自動提交文章到文章站。
- A+ F" Z5 U1 l8 a) @2 E$ V
" v: O9 p# J* F+ y1 qiMacros 簡單的說就是一個基於瀏覽器(firefox,ie,chrome)的錄宏(Macros)回放擴展(extension),利用它可以模擬任何人工的點擊,除了手工錄製,它 還提供一套簡單的腳本,還有 javascript,vbscript 等接口(API)方便進行複雜的邏輯控制。7 e, m' S% q) `0 F5 K
% P" I* N: n7 ^' E! E2 U' ?( j' RiMacros如何自動提交至js腳本生成的文本框( g4 E7 L% p, b+ c0 H/ R
" b! z4 i. h a+ F用iMacros提交文本框特別方便,但如果要提交的是JS生成的框就非常不方便了,不過用下邊的方法可以解決。
' P" z# M( H; R w; A" w
; n8 v! Z) O( z' \# H7 _先說一個錯誤的不成功的方法。( J( G8 O! Q6 y/ a1 L
% `5 c+ ^$ s z" v' qDS CMD=MOVETO X=400 Y=950 CONTENT=AAAA# O8 {7 b8 Y7 t- a
後來上官方網上看了看,如果看不懂,可以先看下邊的基礎教程。
4 l* H2 _0 e6 ^9 H5 C8 F" n網頁上也說了,別的方法都不可行的時候,可以試試這個(DirectScreen (DS) Technology is the ultimate solution if everything
. s, j5 P, s3 ?# I% N6 c# Aelse fails! It simulates standard native mouse clicks within the browser window. It is activated during recording by clicking on the 「Click Mode」 button and selecting 「Use DirectScreen Commands」 from the dialog., A+ N; f1 F9 a
& B- ]- E3 p3 s% w) p* N6 {! h
Typically DirectScreen Technology is used to automate web pages that contain non-HTML elements such asJava applets, Adobe Flash, Adobe Flex, Microsoft Silverlight or ActiveX controls. It also automates even the most complicatedAJAXbased website. http://wiki.imacros.net/DS):7 |. a6 C7 W+ `5 o6 s" e1 W1 ~- e
DS CMD=CLICK X=100 Y=200 CONTENT=CCCC" G. u$ P9 y$ E9 G5 v
又把csv導進去,也可以!9 b) U8 f4 x- ^" `0 X; K
: W0 z6 w$ C" L6 X. qJS調用imacros所用到的函數
& T* ~8 v; ^( b; ]4 Y" k1 s) Z
* s8 ^. A2 t- {# ~1 X5 g( d一、iimPlay() : 調用一個iim腳本。 x6 h7 x$ B; \9 M1 i: _
' @# m7 ]% j. K# F5 m3 |! t* n4 u完整調用方法為 : int ret_code = iimPlay ( String macro [, int timeout] ) ,返回值ret_code為1時說明iim被正確調用。小於0則說明執行腳本時出現了錯誤,+ p& s( ]4 A( Q% A( l" X
) v8 F1 n6 ^& A" I; ~, `# z
履行 iMacros 的腳本語句,語句可以是一段,必須以 CODE: 起頭,行間要用 「\n」 分隔,返回值為負數代表履行有錯4 b' } u* ] x7 c" Z% h4 w
% @$ `2 f& X Y; k
二、iimSet() :設置自定義變量
+ W& r T4 Y% N8 o% p
% p' J4 L% f: ~9 s, U* e. s語法為:int ret_code = iimSet ( String -var_VARNAME, String VARVALUE )
/ O2 M& f8 N+ W& U
: k: d( j# a R! S% D; X0 f y最主要的就是上面兩個,還可以瞭解一下
1 o$ |9 g, r6 v; z3 @5 B- j3 U- b! r& ]9 H
iimDisplay(msg) :以獨立對話框形式顯示一個消息& p7 W* v! {- p- K, v
) T; t6 Z0 m% w4 D/ Z& X0 g) i
string=iimGetLastExtract([n]) : 返回第n此從頁面裡通過Extract得到的數據$ ^: a0 H' V( f) ]5 j) d( O
3 ^6 j% f7 N) q0 [
iimGetLastError() 返回最近差錯對應的差錯信息(字符串)* N8 T! Q$ {- S; N
6 {' y( c8 ^; i; Q; [& _9 S! e+ GTag 未找到時會默認會等候 !TIMEOUT /10 這麼常光陰,默認值就是 6 秒
. b0 r7 q# W- O* P7 E# N( W0 V3 R
7 K2 s$ b3 T# ]: z9 g主要瞭解:1.imacros變量 2.Js調用所用到的函數iimSet()、iimDisplay() 3.調用CSV文件
* I: ]+ o7 v. j1 g8 r/ c6 _ s: N$ ~4 X8 p/ f$ m
imacros簡單的說就是能記錄你在網頁中的動作,然後模擬你的動作自動重複執行。進階應用主要在於兩個方面:
* C, ], y' T. F: N' ?; y3 e' Y; [+ h6 k5 M" D3 z2 f
1.用JS動態調用,重複執行。
# k# H5 j/ V; B0 E3 h% L K+ P- b! o0 n F; a4 d
2.可以調用CSV文件。: ~$ E* G9 B. N G( J
( @* A/ B. y! y7 ^聽說還可以調用數據庫,這個應該很少用,用途不大。 v, J1 l. H' E( x
' o! ~- {% \5 ?3 c5 t安裝和火狐一般安裝方法一樣,不會裝火狐插件的百度一下,安裝完成後在瀏覽器菜單欄上找到imacros的按鈕,點擊將在瀏覽器左邊出現它的工作界面,其工作界面當然也就三部分:2 R" N! ]1 y9 C3 v$ Q( d% T
5 X* `- u) h% J# g5 J o
1.運行:(可以運行所存在的宏,不解釋)
0 j4 c- i2 I& u8 f
- \$ e/ z; N' M# `2.記錄:(點記錄即可記錄你在網頁中的動作,按停止即可自動保存為當前宏)5 n/ U) l1 a+ b7 p
) U/ Y0 O$ X; i+ v+ R( P- r3.編輯:(可以對存儲的宏進一步編輯,更適合你的用途)0 w3 y m$ c, n5 c& H
5 w2 G$ R# \! j6 cimacros變量
1 a# Q, W8 j( \+ g5 r) a' {- R% m. O) d0 K" h9 y2 ?: b
分為系統內定變量 和用戶自定義變量3 \; Q* ]0 J8 W' ^) ]
- q8 e/ b0 N6 W! z# o- q一、系統內定變量. u8 h. @3 E8 y$ P
3 c2 m+ G: N$ ^; Y/ L& R. a# u系統內定變量中有三個特殊的變量:VAR1 VAR2 VAR3 可以賦予任何值。
F9 ^. Z2 X7 X: v) l i$ O8 ^. x7 D* U$ n+ T; ]
常見的系統內見變量:
9 m3 ^2 q# E% ^7 I S! P
9 ^# p0 |9 E3 J6 ^9 sSET !VAR1 helloworld) O3 W# }! [. m/ }$ d
設定!VAR1為 hello world (ps: 代表空格
' y4 d3 m% w; f& {/ o代表回車) i$ c- l: O' T0 f
9 `2 m5 r4 M, {" YSET !TIMEOUT 25 宏超時值1 B4 p4 N! u. a( b+ L' \6 }
7 Z* U7 H5 a7 x( G- f
PROMPT Pleaseentertext !VAR1
0 s$ w3 J5 y C0 G彈出一個輸入框,你在輸入框中輸入的內容將傳到!VAR1中。5 }2 u* r; x% @4 q( y
3 i1 _$ U9 ~3 }' N# Z8 ^7 d二、用戶自定義變量 : 用戶外部傳入的變量# A8 B( y* a7 ?$ `& \
9 ]. S, @9 c( t3 J2 z; {
iimSet(「myurl」,」www.it2168.com」)5 {5 B8 B9 t \( f
3 u+ [, \, T6 f( A, i
調用變量時用{{myurl}}$ \8 E5 s9 f/ g# L. I% G/ q
8 p0 D0 j0 X# \) z4 T
JS調用imacros所用到的函數
8 u$ l `/ ^5 _9 w' o5 w( u9 M- A7 U$ t' o/ T1 |; h6 I% K1 D
一、iimPlay() : 調用一個iim腳本。$ E8 t, E4 J1 ~ G4 _, C" n
+ y0 }! c4 \* D% _+ H完整調用方法為 : int ret_code = iimPlay ( String macro [, int timeout] ) ,返回值ret_code為1時說明iim被正確調用。小於0則說明執行腳本時出現了錯誤,
. F7 x$ T+ t3 y5 l" d( d
3 L4 i4 b6 W- D! `' N; e* k# t履行 iMacros 的腳本語句,語句可以是一段,必須以 CODE: 起頭,行間要用 「\n」 分隔,返回值為負數代表履行有錯/ _- L j) ^% b) i( T
- x+ _$ w0 h4 P$ T" n" I2 w二、iimSet() :設置自定義變量! O8 h! }0 P: u& z- o3 v, P0 S
+ Z9 Q- s. D& O% {% O0 K
語法為:int ret_code = iimSet ( String -var_VARNAME, String VARVALUE )
S; V) g) `1 }$ a6 d+ G1 J6 D @! w ]+ J- B, h. f8 q
最主要的就是上面兩個,還可以瞭解一下- a/ l/ x& y/ x
# c0 R. Z) p( P4 H9 W& JiimDisplay(msg) :以獨立對話框形式顯示一個消息
N& y3 x7 }7 V/ \! J* i$ e8 ~" B* N- W7 E- \
string=iimGetLastExtract([n]) : 返回第n此從頁面裡通過Extract得到的數據
$ j9 l9 |0 C( v0 Q. S
" |2 v) h( [0 L5 @, }iimGetLastError() 返回最近差錯對應的差錯信息(字符串)1 L- E4 @! X y, N' h
8 W+ J; w( C: [$ t2 @2 Y& r) oTag 未找到時會默認會等候 !TIMEOUT /10 這麼常光陰,默認值就是 6 秒
, l$ I% r8 [# a( z* ]
- B9 M- W! y8 k7 N7 T調用csv文件- I9 T( l8 n8 ^
* w1 Q3 M$ Q9 a# L- c% }CMDLINE !DATASOURCE it2168.csv
$ e$ |' u, C" [/ V& X! @ l* cSET !DATASOURCE_COLUMNS 82 H& p6 P2 d0 U; b( Z5 R. A0 C
SET !LOOP 2# F# F* B3 h) V
SET !DATASOURCE_LINE {{!LOOP}}! G% M3 d* x# ]
; F4 q* _6 |( m% A% z. b
SET !DATASOURCE it2168.csv (內置的變量!DATASOURCE)
% j+ d8 ~) P! L) t" f( VSET !DATASOURCE_COLUMNS 8 (選擇好數據源文件後我們需要告訴iMacrosCSV文件有多少列。用!DATASOURCE_COLUMNS變量設置)" S+ w! u( a0 X1 G; j9 L; B4 Y9 m3 _
SET !LOOP 2
$ g0 ~+ P- ?) @ N5 E1 G9 ^: DSET !DATASOURCE_LINE {{!LOOP}} (既然我們要插入的所有數據集,我們需要的宏循環來控制。ps:loop就是腳本循環的次數,還記得play loop那個循環運行按鈕麼,這個內建變量是用來設置讀取文件的第幾行。)$ {+ n+ r* \0 B# F- E# g7 J* b
' H2 E3 I2 s! W現在,我們已經把準備工作都做好了。接下來我們要讀取出對應的數據。! ?/ ?5 O- ^9 d- j% n- W v9 e
TAG TYPE=INPUT:TEXT FORM=Listing ATTR=NAME:Name CONTENT={{!COL1}}4 r: B W1 J: C0 L* m8 o5 E, A
TAG TYPE=INPUT:TEXT FORM=Listing ATTR=NAME:Album CONTENT={{!COL2}}
" w, m8 `; L/ ?. O" }TAG TYPE=INPUT:TEXT FORM=Listing ATTR=NAMErice CONTENT={{!COL3}}+ M2 W8 I' f; R9 }
{{!COL1}} 代表的是讀取出對應的第一列數據& ~6 x3 K9 y5 @. R3 O: u: D
2 X' F3 L r* }5 g) {5 P) i常用指令3 E K# m0 [; {5 @
- a4 x, F6 U0 G' lREFRESH 用來刷新頁面) k+ W3 P6 H7 X) C# i5 _; }* m
9 |* l$ r. U' ~WAIT SECONDES=3 等候 3 秒; J+ |4 s4 R$ g- m: H# S
h& E/ _9 F2 v0 DONDIALOG POS=1 BUTTON=CANCEL CONTENT= 看到彈出窗口後點 Cancel; F4 b! N7 F/ Q7 @
0 p6 A5 d, V Y; MURL GOTO=http://www.g.cn 轉到網址 www.g.cn- J- O$ P) W# A
2 x9 j# R9 x9 ?6 W6 pTAB T=1 轉到第一個標籤頁. R* X& E4 }/ z8 s. G' Q( d1 Y
( Z; \0 Z, p; u" ?6 N6 XVERSION BUILD=6700624 RECORDER=FX
4 n& c$ C& l7 P5 |版本號
7 c+ G6 P1 x, F8 G9 V) }: ^8 g" d0 u1 s6 n& v* D
TAG POS=1 TYPE=td ATTR=align:center EXTRACT=TXT
: g9 N- u+ F8 V; `* Y/ m! B; I" z& CPOS=地位 頁面提取內容 TYPE=標籤 ATTR=標籤對用的屬性:值 EXTRACRT=TXT 提取文字/ ]1 b5 F g1 M9 E K
' i/ @0 R P3 B3 n0 [
SET !VAR {{!EXTRACT}} 提取內容在EXTRACT裡,複製到var
9 w! m1 Y1 i: ]( _6 U' h% M# C9 T9 a5 g1 ]7 ]# _
SET !TIMEOUT 25 超時光陰設值
3 V N6 m4 ` V: {7 c. T: B6 r/ T% o: z0 k" R. m
SET !REPLAYSPEED FAST 用來設定回放速度為最快,即履行語句中間不等候
/ ^- a9 c4 |3 _% Z* F( B
! _9 j# n9 h+ K7 S/ kSET !ERRORIGNORE YES 用來漠視差錯/ R' ?' e2 J0 W( @# v6 _
1 K# l- ?) }: [4 v& A
一,基本操作
/ I* w$ [2 p: i1 \ e0 W8 O; F. W" E2 ]9 b, d5 `: R
1創建變量! i, u( w1 w# h) f* V
* y1 m2 L. g; m+ s, J* E
有三個特殊的內置變量, !VAR1 , !VAR2和!VAR3。這些變量可以設置為任何你自定義的值。" }9 D7 l+ T, F* c
9 a [' T1 c3 N: M9 c4 h
例如:; M4 @) b' A# M6 b5 Z" d& v3 \
/ y$ m3 w, j NSET !VAR1 helloworld
9 `0 Z' M$ M2 K9 g. k& I
4 d, @' o' W. \6 `% [4 \設定!VAR1為 helloworld (ps: 代表空格
4 S3 K" ?, G- F8 P' O代表回車) q7 y7 g9 d: j
9 G% E. h, Y5 c+ q! ~* `
PROMPT Pleaseentertext !VAR1
: J& [9 y- ?8 P) w, [: s6 ^! z6 X- N5 ]
彈出一個輸入框,你在輸入框中輸入的內容將傳到!VAR1中。
, `; l, A8 K5 | [9 |9 q8 ^6 s% a( r" }- S
用戶定義的變量:5 g; O- e* R* K/ m
, R/ A# u$ o0 j1 u5 `/ D' |! f自定義變量是用戶在外部控制時傳入的變量。例如在Visual Basic腳本示例這將如下所示:
" v4 s7 O4 n" |+ q& o( d; J; z" J1 i; x; Z. q6 S) T0 F& U
iret = imacros.iimSet(「-var_ITEM」, 「15〞)(ps:有時候也可以這樣設置:iimSet(「ITEM」, 「15〞),設置變量ITEM)% ^, M9 @5 D4 ` @# |6 {
- L; h" H1 I* r/ t0 G在調用的地方使用{{ITEM}}替換要代替的數值。0 A3 M6 L5 [1 L
, F) W k3 G: [" U% F$ { M4 @7 C
iMacros讓您指定文本文件, CSV文件作為輸入。+ S A& T/ ?5 v5 n
}1 k* [1 m9 X1 w# F
例如這樣一個csv文件:% ?4 a$ a; [! p, \4 m3 S
+ p! y8 t x% K2 l「ARTIST」 , 「ALBUM TITLE」 , 「PRICE」4 e& R% y+ _1 F. b1 m, t
( L& S: g/ y- R# A「Beatles」, 「Abbey Road」, 「13.49〞( z) {/ }* e' V; e! t7 M
# A% [' G6 P8 c6 m8 S' {0 d
「Beatles」, 「The Beatles 1,2,3〞 , 「25.49〞8 n& L% d4 H6 r# N
* k9 M, i3 |) B3 @
「Mozart」 , 「Symphonies No.40 & 41〞, 「9.98〞; M0 U$ r: {, q( C
N7 N/ h5 X" |2 J
「Mozart」, 「Requiem」, 「7.50〞
% {, t6 {5 Z. L. O
; C3 F( u7 F3 S% L5 j; a這個文件的文件名為OnlineAuction.csv
% `3 d3 S: Z# X: B* E
6 d# f3 Z6 a# |& a我們現在需要告訴iMacros宏如何找到這個數據輸入文件。為此,我們使用內置的變量!DATASOURCE& |3 R G. w P9 L/ ^3 C
. C/ x! H$ N8 `& j* N W
SET !DATASOURCE OnlineAuction.csv5 F" d' V9 D$ {
. k: G! x8 _- N8 M如果您不使用任何路徑信息DataSource的路徑默認定位在標準數據源的目錄,可在選項對話框中指定這個路徑。默認路徑是iMacros數據路徑下的 datasources文件夾。
- B R) V6 N: z, \( p% B" N+ }0 M0 e& q! Z
選擇好數據源文件後我們需要告訴iMacrosCSV文件有多少列。我們用!DATASOURCE_COLUMNS變量設置:; u+ x' b! }" M: ?4 e% i
1 \! n* X5 a! O7 ?1 r: ^$ mSET !DATASOURCE_COLUMNS 3
6 f. |6 r4 [2 r7 r& M9 Y" b$ F. H; f) _" d
此數字必須完全匹配輸入文件的列數
5 r; l2 s- `0 @; x6 K7 @4 i! z N' M
既然我們要插入的所有數據集,我們需要的宏循環來控制。
' w, Y! v7 \7 n, s d! i! R7 y# @
' n4 S3 Z) \6 m1 OSET !DATASOURCE_LINE {{!LOOP}} (ps:loop就是腳本循環的次數,還記得play loop那個循環運行按鈕麼~~)$ \/ D1 T, o0 q) P& k
+ [; a3 f4 Q F+ ?3 f- t$ [/ Q
這個內建變量是用來設置讀取文件的第幾行。
" G# I" Z4 j" H! f( b$ P) F9 Q$ f( y: A7 L
現在,我們已經把準備工作都做好了。接下來我們要讀取出對應的數據。
3 Q4 g6 ` C* A& d8 g
7 Q! h. |. m, a- [0 ]* B6 q# @TAG TYPE=INPUT:TEXT FORM=Listing ATTR=NAME:Name CONTENT={{!COL1}}
. P1 L( e+ x G' Z& f) J7 R, _6 ]: I6 X. P3 C
TAG TYPE=INPUT:TEXT FORM=Listing ATTR=NAME:Album CONTENT={{!COL2}}6 o5 I- z: |- ^1 [) V, @
/ B. N0 `* [; {% v2 Q5 |2 m! n; g
TAG TYPE=INPUT:TEXT FORM=Listing ATTR=NAMErice CONTENT={{!COL3}}
* h6 l( m7 E& E: ^ z3 A$ Q: V' @: O9 A2 X6 l5 b7 ~: a
{{!COL1}} 代表的是讀取出對應的第一列數據
- w8 ^2 J5 {; L, R7 c
! G, _- [* d+ pte> te>6 b% t9 n9 A, E( f. u G `
% l# a* x/ {3 U" B, B/ }% i
常用有特殊意義的系統變量,用來設置一些屬性
! { O9 E/ c# `. G% i
7 Z3 W+ P) H6 B& |SET !TIMEOUT 33 超時時間設值' l& ]- q) `; Y# v- j
' U3 C q. R' A/ u- W: E8 h: BSET !REPLAYSPEED FAST 用來設定回放速度為最快,即執行語句中間不等待' ?; W* Y# |/ ?8 o% e8 H3 [
: `: y, _) n* n; D" i8 }, n; i, L
SET !ERRORIGNORE YES 用來忽略錯誤: p+ C0 c5 ~7 U( k! T
# J" x8 |; {& I5 y/ l2 z7 l& T Z u+ e
2常用指令:
. m" z+ j+ l$ J% H. o& L+ k& x; O5 w) x2 S& J1 _. l
REFRESH 用來刷新頁面
) T* o" g; S3 A6 G
" S/ |: P" ?3 X$ Q. V: J8 eWAIT SECONDES=3 等待 3 秒6 o( H! E; Z% ?( m2 R# l
( E/ d/ D' q( n0 N7 [
ONDIALOG POS=1 BUTTON=CANCEL CONTENT= 看到彈出窗口後點 Cancel; @8 L( q5 k `7 E: \
# ~5 f0 o3 U5 C' @9 h3 P5 b
URL GOTO=http://www.g.cn 轉到網址 www.g.cn9 V. f, o$ a( N& X4 W) e( K) F
# V9 c O0 r& M2 {5 ?+ p2 g6 v
TAB T=1 轉到第一個標籤頁* o4 a! m. P R+ I- B6 J: o4 t
$ f7 h# V2 S/ H
VERSION BUILD=6700624 RECORDER=FX
% v2 C# `% `* W2 }. q9 f4 l6 y6 E( d' e# k- q; W- o
TAB T=19 b7 \3 ?& o. {/ W h
+ O! f* G1 w! C) J$ qTAG POS=1 TYPE=td ATTR=align:center EXTRACT=TXT POS=位置 頁面提取內容 TYPE=標籤 ATTR=標籤對用的屬性:值 EXTRACRT=TXT 提取文字
3 Y, S8 F+ \: V! v* B; ^- F- X7 v& O; B5 `4 s3 E7 t4 j
SET !VAR {{!EXTRACT}} 提取內容在EXTRACT裡,複製到var7 F+ m1 z* q$ n) g6 R
: l5 t% v: {5 a+ o$ m二, 高級操作8 m% Q1 i, z6 W7 ?* I0 S3 e/ P
; z5 m7 p9 |0 g% T
寫 js 用到的接口:+ r1 A6 \" q( B7 p. D K
% b7 x) p6 A& y$ V3 d
iimPlay(「CODE:…」)執行 iMacros 的腳本語句,語句可以是一段,必須以 CODE: 開始,行間要用 「\n」 分隔,返回值為負數代表執行有錯- V9 p( K7 ]5 F+ C; \/ M
! W7 I# J% A- e8 B7 y; N. h/ eiimGetLastError() 返回最近錯誤對應的錯誤信息(字符串)
/ g2 T, q; I3 k
( N7 i; p- Y9 e9 q- M; s; R$ V4 diimDisplay(msg) 以獨立對話框形式顯示一個消息
& h$ k# d6 _) N8 W. k8 b/ e& {# Q- F! r, A
SET 語句只在一個 CODE: 塊中有效* G( T% ^9 m) q( `4 I W
- p) ~. N; A) w, [# S
Tag 未找到時會默認會等待 !TIMEOUT /10 這麼常時間,默認值就是 6 秒
# L6 d# o3 d, ]0 {" Z9 Y1 @
& e% W" x2 R, C: }4 S不 支持使用 document.getElementById() 來判斷 tag 是否存在
8 t) a+ j+ M; `. V1 C
8 g: @1 [9 e- ^string=iimGetLastExtract([n]); 返回第n此從頁面裡通過Extract得到的數據4 o& {, R. c& U3 ~9 L, [& X
下面再介紹一些imacros的教程
- }( [6 }5 B' i( f }+ N% R這些教程我都看過,非常有用,我正在好好研究,我已經寫了幾個代碼並且批量運行了。哈哈。) Z! x( q7 t0 `- v3 n- a, r
% Z ^' x& Z* Q/ giMacros與js; u0 o- }0 O$ X2 d$ v* F3 [
當你已經初步學會了如何使用iMacros後,為了實現更加複雜的操作,可以嘗試使用用js來調用iMacros。* l! I: R0 c) x
你可以在腳本中重命名一個.js後綴的腳本,之後運行該腳本將以js方式調用。你也可以從外部載入一個js腳本,使用記錄-載入或直接複製腳本到 iMacros的Datasources目錄8 i1 J( ~, w6 i/ x: R; ]
( n" P# h U7 h; B
第一次使用js調用iMacros腳本, v& @0 j' c7 V; J: K
首先錄製一個簡單的腳本google.iim8 e0 Y8 @7 ?9 I. H; E' H; l
VERSION BUILD=6111213 RECORDER=FX
3 a9 e6 u5 r9 S: C9 I『作者zymaxs
# d0 M! o$ g3 c) B2 E1 S" j2 Z" a* `TAB T=1
0 D% j1 A8 e. yURL GOTO=http://www.google.cn/
1 E) z' l; M, ^7 k% lTAG POS=1 TYPE=INPUT:TEXT FORM=NAME:f ATTR=NAME:q CONTENT=iMacros% V' U+ E/ p2 J7 _& I
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:f ATTR=NAME:btnG&&VALUE:Google搜索3 h" p" P$ {* Q+ O( w
4 t$ V+ C- _4 Q
錄製完成後,再導入一個空文件,文件名為google.js。8 l6 {/ Y) E6 ^. C/ J
編輯google.js:
7 Q6 Y: N8 E! yiimPlay(「google」);6 z2 R s% E* Y4 T& a- [
確定保存,然後運行這個文件# f3 F% w) P6 ]0 @- m
+ {+ w) L( h- L7 F$ M( u
運行剛剛的js我們發現,使用iimPlay可以方便的調用一個iim腳本。1 l. L3 e, g7 j& |3 ?
iimPlay的完整調用方法為6 A0 z- g) H4 v# j5 q2 G
int ret_code = iimPlay ( String macro [, int timeout] )(備註:作者沒有發現timeout的具體作用)( H- J) D: K& h) z( F+ n' y
返回值ret_code為1時說明iim被正確調用。小於0則說明執行腳本時出現了錯誤
6 ~4 `6 p$ z5 w, R$ @; i0 F
* N7 E: P$ a0 E7 ~0 }, B如何調用外部參數
' `* T5 O6 G$ N! B) j# R在很多情況下,我們希望最終運行時輸入的數據並不是錄製的數據,而是需要自定義可修改的。
; U) t. P- B* A要達到這個使用目的可以使用iimSet()設置自定義變量-var_varname,然後在腳本中調用這個參數。# ^+ P# f! `% D+ T8 r" y; ]$ c: V
int ret_code = iimSet ( String -var_VARNAME, String VARVALUE )9 M1 I: h- |" Y8 `% t
" h# O- L- l! {2 N! _
調用示例9 i6 D' X4 ]' {$ \( ?
修改google.js:
+ z* J/ \- w7 s* `3 R9 ~iimSet (「-var_search」,」imacros」)' I- d# |$ z. T" d- j
iimPlay(「google」);4 x# w' c# ?. d
修改google.iim中:
' X8 f( G$ d; ^7 X' M7 ?CONTENT=Imacros 為CONTENT={{search}}
0 N+ N7 A0 P, t, `; m, Y再次運行google.js6 n7 x( R O6 s0 T% q0 G( u3 z; W
發現了嗎,搜索傳入的參數可以通過這種方式任意修改。4 a8 X# C% i9 a
2 S3 T- ~( O% l+ v5 V5 E在運行過程輸入值
" @8 c7 l0 |+ V) `& G; V/ ^有些時候你不能在運行前確定腳本中的一個值,需要在運行中手動輸入,這時候需要對iim腳本做修改:
$ y: f8 @0 G6 c* o, j0 \* qPROMPT 輸入驗證碼 !VAR1. T0 Y' P5 q! p6 h, M$ P9 P9 r
運行時會跳出一個輸入框讓你輸入數據
" ]6 N5 _% h/ b) w0 j3 _5 P然後使用{{!VAR1}}調用數據5 L7 `( b) e2 m2 e5 q
* b9 L- T8 Y3 d3 |# Y3 }# h) o) U
保存結果頁面& c8 w/ D9 P# [! i ?" J7 Y0 Y: Z
有時候我們希望在運行腳本的過程中可以把一些重要的頁面記錄下來,這時候我們可以在iim腳本中使用:
% @: H- N1 }) V BSAVEAS TYPE=MHT FOLDER=* FILE=pagename' Y' Z3 F; ~( ?$ o5 N9 n1 C
這句意味著保存當前頁為mht格式,保存到iMacros的download文件夾中
8 w- z- o+ L: A T/ k0 M
! T O5 q% ]8 V! q頁面響應時間記錄
' G$ v Y7 M( A) \0 n E: o( z在做一些頁面的測試時,我們需要記錄頁面的響應時間以便進行分析。
7 k# O7 i% w; [7 v- eiMacros提供可以用csv格式保存頁面響應時間,對應iim腳本:1 ^7 v% N: O. F. |# X y7 `
STOPWATCH ID=id
3 `4 j6 Q# |/ H' M5 \# {2 u' X『做一些頁面操作
+ j& J" }- M) \* `" L6 m! w/ \! z9 USTOPWATCH ID=id
2 F/ f% o3 ]8 i' F0 Y- m0 Y |