现在的位置: 首页 iMacros 教程 >正文

iMacro脚本入门教程

例子来自于官方的demo分析:

1.英文引号:' 是注释

2.
PROMPT Enter<SP>a<SP>Page<SP>Name !VAR1 NoName_Time_{{!NOW:yyyymmdd_hhnnss}} 
-><SP> : 是空格
->PROMPT : 弹出提示框
->!VAR1 : 把用户输入赋值到这个变量
->NoName_Time_{{!NOW:yyyymmdd_hhnnss}} : 默认值
->{{!NOW:yyyymmdd_hhnnss}} : 当前日期且格式化

3.
SAVEAS TYPE=CPL FOLDER=* FILE={{!VAR1}}
->SAVEAS : 保存文件
->TYPE=CPL : 我也不知道是啥
->FOLDER=* : 文件保存在Downloads 文件夹
->FILE={{!VAR1}} : 指定文件名,扩展名imacro会自动帮你处理

4.
WAIT SECONDS=3
URL GOTO=http://www.iopus.com/imacros/home/msg/ok.htm 
->SECONDS=3 : 等待3秒
->URL GOTO=访问url

5.
SET !VAR1 EVAL("Math.floor(Math.random()*5 + 1);")
->设置变量,其值为js生成的随机数

6.
SET !VAR1 EVAL("Math.floor(Math.random()*5 + 1);")
WAIT SECONDS={{!VAR1}}
->{{!VAR1}} : 引用值

7.
SET !VAR2 EVAL("var h=20; var s=\"{{!EXTRACT}}\"; if(3>2){MacroError(\"3大于2了\");}else null")
-> var s=\"{{!EXTRACT}}\" : 在eval中赋值的写法
-> MacroError(\"3大于2了\"); : 抛出错误的写法

8.
SET !EXTRACT NULL
->设置变量为null

9.
TAG POS=1 TYPE=B ATTR=TXT:* EXTRACT=TXT
->把 B 标签中的文本赋值给EXTRACT变量中,希望我没有说错

10.
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:form1 ATTR=NAME:textfield EXTRACT=TXT
->把 id为form1的表单中的名字为textfield的文本框的值赋值给EXTRACT变量中,希望我没有说错

11.
SET !EXTRACT_TEST_POPUP NO
->不弹出窗口

12.
TAG POS=1 TYPE=TD ATTR=CLASS:bdytxt&&TXT:* EXTRACT=TXT
->td标签且存在bdytxt这个css类,且任意文本

13.
TAG POS=1 TYPE=A ATTR=TXT:HREF<SP>extracts<SP>links EXTRACT=HREF 
->抽取a标签中文本是HREF extracts links 的href值

14.
TAG POS=1 TYPE=DIV ATTR=TXT:MyTable
->获得文本为MyTable的div

15.
TAG POS=1 TYPE=DIV ATTR=TXT:MyTable
TAG POS=R3 TYPE=TD ATTR=TXT:* EXTRACT=TXT 
TAG POS=R-2 TYPE=TD ATTR=TXT:* EXTRACT=TXT  
->设置div中文本为MyTable的位置为1
->R3 相对于位置1而言,向前选择元素,希望我没有说错
->R-2相对于位置1而言,向后选择元素

16.
SAVEAS TYPE=EXTRACT FOLDER=* FILE=mytable_{{!NOW:yymmdd_hhnnss}}.csv
->FOLDER=* 使用默认文件夹,默认文件夹位置是你的ff扩展imacro的选项里面设置的路径
->FOLDER=c:\yourfolder 你可以这么使用你的文件夹

17.
TAG XPATH="id('TestForm')/div/center/table/tbody/tr[2]/td[3]/select" CONTENT=$Pizza
->设置id为TestForm表单下的某个td中的下拉菜单标签为Pizza的元素选中,CONTENT是为了设置选中,注意在select中要用$号
->或许id('TestForm')的写法代替了传统的写法: //*[@id="TestForm"]

18.
TAG XPATH="id('TestForm')/descendant::select[2]" CONTENT=$Water
->id为TestForm表单下的所有的下拉菜单中的第二个,且设置其显示标签为Water的元素选中,CONTENT是为了设置选中,注意在select中要用$号

19.
TAG XPATH="id('TestForm')/descendant::input[@name='C7']" CONTENT=YES
->id为TestForm表单下的所有的input中name为C7且设置其显示内容为YES的元素,CONTENT是为了设置input的value值

20.
TAG XPATH="id('TestForm')/descendant::input[translate(@name, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')='reg_code']" CONTENT=demo123 
->大写转小写,且注册每个需要转换的字母

21.
TAG XPATH="/descendant::input[@type='submit']"
->一个只有一个提交按钮的页面的快捷访问写法

22.
SET !ENCRYPTION NO
->未知

23.
FILTER TYPE=IMAGES STATUS=ON 
->开启显示网页图片

24.
SET !REPLAYSPEED MEDIUM
->设置播放速度,SLOW为慢

25.
TAG POS=1 TYPE=A ATTR=HREF:http://www.iopus.com/imacros/demo/v5/frames/subframe.htm   
->未知

26.
ONDIALOG POS=1 BUTTON=OK CONTENT=
->未知

27.
TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:NoFormName ATTR=VALUE:Popup<SP>1
->点击一个按钮,然而这个按钮不在表单中,所以:NoFormName

28.
SET !VAR1 1

TAB OPEN NEW
ADD !VAR1 1
TAB T={{!VAR1}}
URL GOTO=http://www.iopus.com

TAB OPEN NEW
ADD !VAR1 1
TAB T={{!VAR1}}
URL GOTO=http://forum.iopus.com

->先设置变量SET !VAR1 为1
->然后设置标签打开方式是新开标签
->变量自增
->TAB T={{!VAR1}},当前用户所在标签页的第二个标签
->然后在第二个标签中打开连接
->因为不想影响当前用户打开的标签页,故而新开一个标签页再打开地址,这样是用户体验友好的做法

29.
SAVEAS TYPE=CPL FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}}   
SAVEAS TYPE=HTM FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}}   
SAVEAS TYPE=TXT FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}}  
->以三种类型保存文件

30.
URL GOTO=http://www.iopus.com/imacros/demo/v5/pdf/  
TAG POS=1 TYPE=A ATTR=TXT:*User<SP>Manual*   
ONDOWNLOAD FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}}    
SAVEITEM  

->打开url
->点击a标签,准备下载
->定义下载文件然后下载保存,

31.
TAB T=1 
->使用当前打开的标签页

32.
SAVEAS TYPE=JPEG FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}}
->支持的下载类型: CPL|HTM|TXT|EXTRACT|PNG|JPEG

33.
TAB T=1     
URL GOTO=http://www.iopus.com/imacros/demo/v6/images   
SET !LOOP 2
TAG POS={{!loop}} TYPE=A ATTR=HREF:http://*.jpg  
SAVEAS TYPE=JPEG FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}}
->当前标签页打开url
->设置从第二次循环开始
->{!loop}} 引用循环下标值
->一次点击页面上的图片
->以指定的格式保存

34.
STOPWATCH ID=Firstpage
URL GOTO=http://www.iopus.com/imacros/demo/v6/stopwatch.htm  
STOPWATCH ID=Firstpage   
->开启一个停表,计算打开url的时间

35.
SET !FILESTOPWATCH C:\demo-stopwatch2.csv  

STOPWATCH ID=Firstpage
URL GOTO=http://www.iopus.com/imacros/demo/v6/stopwatch.htm  
STOPWATCH ID=Firstpage   
 
ADD !EXTRACT {{!STOPWATCHTIME}}
->设置秒表执行信息的文件保存位置
->秒表记录打开url的耗时
->记录进文件中