在imacros中使用变量

上一篇 / 下一篇  2011-07-12 20:42:42 / 精华(1) / 个人分类:iMacro

在这篇教程中我们将学习如何在imacros中使用变量。
在iMacros中有两种类型的变量:内建变量和用户定义的变量。

内建变量:
内建变量是用来界定某些性能的宏观的行为,例如宏超时值:
SET !TIMEOUT 33
执行上面一句意味着设定页面超时时间为33s
有三个特殊的内置变量, !VAR1 , !VAR2和!VAR3。这些变量可以设置为任何你自定义的值。
例如:
SET !VAR1 helloworld
设定!VAR1为 helloworld (ps: <sp>代表空格<br>代表回车)
PROMPT Pleaseentertext !VAR1
弹出一个输入框,你在输入框中输入的内容将传到!VAR1中。

用户定义的变量:
自定义变量是用户在外部控制时传入的变量。例如在Visual Basic脚本示例这将如下所示:
iret = imacros.iimSet("-var_ITEM", "15")(ps:有时候也可以这样设置:iimSet("ITEM", "15"),设置变量ITEM)
在调用的地方使用{{ITEM}}替换要代替的数值。

iMacros让您指定文本文件, CSV文件作为输入。
例如这样一个csv文件:
"ARTIST" , "ALBUM TITLE" , "PRICE"
"Beatles", "Abbey Road", "13.49"
"Beatles", "The Beatles 1,2,3" , "25.49"
"Mozart" , "Symphonies No.40 & 41", "9.98"
"Mozart", "Requiem", "7.50"
这个文件的文件名为OnlineAuction.csv
我们现在需要告诉iMacros宏如何找到这个数据输入文件。为此,我们使用内置的变量!DATASOURCE
SET !DATASOURCE OnlineAuction.csv
如果您不使用任何路径信息DataSource的路径默认定位在标准数据源的目录,可在选项对话框中指定这个路径。默认路径是iMacros数据路径下的datasources文件夹。
选择好数据源文件后我们需要告诉iMacrosCSV文件有多少列。我们用!DATASOURCE_COLUMNS变量设置:
SET !DATASOURCE_COLUMNS 3
此数字必须完全匹配输入文件的列数
既然我们要插入的所有数据集,我们需要的宏循环来控制。
SET !DATASOURCE_LINE {{!LOOP}} (ps:loop就是脚本循环的次数,还记得play loop那个循环运行按钮么~~)
这个内建变量是用来设置读取文件的第几行。
现在,我们已经把准备工作都做好了。接下来我们要读取出对应的数据。
TAG TYPE=INPUT:TEXT FORM=Listing ATTR=NAME:Name CONTENT={{!COL1}}
TAG TYPE=INPUT:TEXT FORM=Listing ATTR=NAME:Album CONTENT={{!COL2}}
TAG TYPE=INPUT:TEXT FORM=Listing ATTR=NAME:Price CONTENT={{!COL3}}
{{!COL1}} 代表的是读取出对应的第一列数据

数据库
这个例子只适用于专业版。
iMacros可以直接从数据库读取数据。
这个例子中的代码Visual Basic脚本连接到Microsoft Access数据库: (ps:这个功能我没有尝试使用过,谁试验觉得好用了告诉我:))
' open database
set rs = CreateObject("ADODB.Connection")
rs.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" _
& mypath & "IIM-TEST-SUBMIT.MDB")

' use SQL to select information
sql = "select * from table1"
set rs = rs.Execute(sql)

' start iMacros
set iim1= CreateObject ("iMacros")
iret = iim1.iimInit
iret = iim1.iimDisplay("Submitting Data from MS ACCESS")

' loop through result dataset
do until rs.eof
'Set the variable
iret = iim1.iimSet("-var_FNAME", rs.fields(0))
iret = iim1.iimSet("-var_LNAME", rs.fields(1))
iret = iim1.iimSet("-var_ADDRESS", rs.fields(2))
iret = iim1.iimSet("-var_CITY", rs.fields(3))
iret = iim1.iimSet("-var_ZIP", rs.fields(4))
iret = iim1.iimSet("-var_STATE-ID", rs.fields(5))
iret = iim1.iimSet("-var_COUNTRY-ID", rs.fields(6))
iret = iim1.iimSet("-var_EMAIL", rs.fields(7))
'Run the macro
'Note: This is the SAME macro, as in the FILE-2-WEB-METHOD2.VBS example script!!!
iret = iim1.iimPlay("wsh-submit-2-web")
If iret < 0 Then
MsgBox iim1.iimGetLastError()
End If
rs.movenext
loop

iret = iim1.iimDisplay("Done!")
iret = iim1.iimExit
WScript.Quit(0)


TAG:

 

评分:0

我来说两句

我的栏目

日历

« 2024-04-26  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 9715
  • 日志数: 11
  • 书签数: 1
  • 建立时间: 2010-09-09
  • 更新时间: 2012-02-06

RSS订阅

Open Toolbar