Operating system: Windows 10 64-bit English
Browser: Internet Explorer version 11.504.17763.0 (iMacros Browser/client, not using browser extension).
Demo success: Yes
I'm using the following script to 1) login to a website, 2) loop through a 1-column csv file and use each value to make a selection from a dropdown menu, 3) submit selection, and 4) select the download link based on <a> tag content
Code: Select all
VERSION BUILD=12.5.503.8802
TAB T=1
TAB CLOSEALLOTHERS
' Go to login portal
URL GOTO=[login url]
' Sign-in
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:userId CONTENT=[userid]
SET !ENCRYPTION STOREDKEY
TAG POS=1 TYPE=INPUT:PASSWORD ATTR=NAME:password CONTENT=[pw]
TAG POS=1 TYPE=INPUT:SUBMIT ATTR=NAME:signin
WAIT SECONDS=10
'set csv file as datasource
SET !DATASOURCE accountlist.csv
SET !DATASOURCE_LINE {{!LOOP}}
'Set download path
ONDOWNLOAD FOLDER=E:\Folder\ FILE={{!COL1}}+document+{{!NOW:yymmdd}} WAIT=YES
SET !TIMEOUT_DOWNLOAD 20
WAIT SECONDS=3
TAG POS=1 TYPE=SELECT FORM=NAME:NoFormName ATTR=CLASS:GB01FU-BNW CONTENT=%*{{!COL1}}*
WAIT SECONDS=3
'Choose 'go' to submit selection from dropdown
TAG POS=1 TYPE=BUTTON ATTR=TXT:GO
'Click download link
TAG POS=1 TYPE=A ATTR=TXT:Download
WAIT SECONDS=10
Code: Select all
112314003
140234011
140074029
422407607
Code: Select all
Option Explicit
Dim iim1, iret
'initialize iMacros instance
set iim1 = CreateObject ("imacros")
iret = iim1.iimOpen()
'here comes the code
'query
Dim login
login = "URL GOTO=[login url]" & vbNewLine
login = login & "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:userId CONTENT=[userid]" & vbNewLine
login = login & "SET !ENCRYPTION STOREDKEY" & vbNewLine
login = login & "TAG POS=1 TYPE=INPUT:PASSWORD ATTR=NAME:password CONTENT=[pw]" & vbNewLine
login = login & "WAIT SECONDS=2" & vbNewLine
login = login & "TAG POS=1 TYPE=INPUT:SUBMIT ATTR=NAME:signin" & vbNewLine
login = login & "WAIT SECONDS=15" & vbNewLine
iret = iim1.iimPlayCode(login)
Dim macro
macro = "SET !DATASOURCE accountlist.csv" & vbNewLine
macro = macro & "SET !DATASOURCE_LINE {{!LOOP}}" & vbNewLine
macro = macro & "ONDOWNLOAD FOLDER=E:\Folder\ FILE={{!COL1}}+Statement+{{!NOW:yymmdd}} WAIT=YES" & vbNewLine
macro = macro & "SET !TIMEOUT_DOWNLOAD 20" & vbNewLine
macro = macro & "WAIT SECONDS=3" & vbNewLine
macro = macro & "TAG POS=1 TYPE=SELECT FORM=NAME:NoFormName ATTR=CLASS:GB01FU-BNW CONTENT=%*{{!COL1}}*" & vbNewLine
macro = macro & "WAIT SECONDS=3" & vbNewLine
macro = macro & "TAG POS=1 TYPE=BUTTON ATTR=TXT:GO" & vbNewLine
macro = macro & "WAIT SECONDS=3" & vbNewLine
macro = macro & "TAG POS={{loopNumber}} TYPE=A ATTR=TXT:Download" & vbNewLine
macro = macro & "WAIT SECONDS=3" & vbNewLine
Dim recentLineNumber
recentLineNumber = 0
do while not iret < 0
recentLineNumber = recentLineNumber + 1
iret = iim1.iimSet("loopNumber", Cstr(recentLineNumber))
iret = iim1.iimPlayCode(macro)
loop
' tell user we're done
msgbox CStr((recentLineNumber-1)) & " statements saved. End."
' exit iMacros instance and quit script
iret = iim1.iimClose()
Wscript.Quit(iret)
When I run the second part of the script on its own in the iMacros browser using the UI "repeat" fields, it works perfectly.
Code: Select all
VERSION BUILD=12.5.503.8802
TAB T=1
TAB CLOSEALLOTHERS
SET !DATASOURCE accountlist.csv
SET !DATASOURCE_LINE {{!LOOP}}
'SET !PLAYBACKDELAY 0.00
'set path and filename
ONDOWNLOAD FOLDER=E:\Folder\ FILE={{!COL1}}+Statement+{{!NOW:yymmdd}} WAIT=YES
SET !TIMEOUT_DOWNLOAD 20
WAIT SECONDS=3
'select from dropdown
TAG POS=1 TYPE=SELECT FORM=NAME:NoFormName ATTR=CLASS:GB01FU-BNW CONTENT=%*{{!COL1}}*
WAIT SECONDS=3
'select 'go' to submit selection
TAG POS=1 TYPE=BUTTON ATTR=TXT:GO
'select <a> tag to download
TAG POS=1 TYPE=A ATTR=TXT:Download
WAIT SECONDS=10
Never touched VBS before this but I'm glad I did...that said I'm open to learning what may be necessary to accomplish this in the most efficient way.
Any guidance/suggestions/insight will be greatly appreciated.
Edit: Fixed typo