Wait using Script Loop
From iMacros
When automating the following site, we were interested in extracting the marked data (WKN number).
The problem, however, was that the marked block needed some time to appear on the page, although the browser reported it as being "fully loaded". In these cases, a normal macro would have reported an extraction error.
We solved this issue by making a script loop the extraction again and again until it was successful.
Here's the code (note that this was a "quick fix", so the script is not equipped with any error handling or other sensible features and it contains unnecessary lines of code):
Dim iim1, iret, macro
set iim1= CreateObject ("imacros")
iret = iim1.iimInit("", false)
Dim i
lineNumber = inputbox("How many lines of input?")
for i = 1 to Cint(lineNumber)
macro = "CODE:"
macro = macro + "VERSION BUILD=6120228" + vbNewLine
macro = macro + "TAB T=1" + vbNewLine
macro = macro + "TAB CLOSEALLOTHERS" + vbNewLine
macro = macro + "SIZE X=1132 Y=885" + vbNewLine
macro = macro + "SET !EXTRACT_TEST_POPUP NO" + vbNewLine
macro = macro + "SET !TIMEOUT 100" + vbNewLine
macro = macro + "SET !ERRORCONTINUE YES" + vbNewLine
macro = macro + "SET !DATASOURCE DE-Share.csv" + vbNewLine
macro = macro + "SET !DATASOURCE_COLUMNS 2" + vbNewLine
macro = macro + "SET !DATASOURCE_LINE "+Cstr(i)+ vbNewLine
macro = macro + "URL GOTO=http://deutsche-boerse.com/dbag/dispatch/de/isg/gdb_navigation/home?active=masterdata&module=InMaster_Equi&wp={{!COL2}}&wplist={{!COL2}}&foldertype=_Equi&wpbpl=" + vbNewLine
macro = macro + "SET !EXTRACTADD {{!COL1}}" + vbNewLine
macro = macro + "SET !EXTRACTADD {{!COL2}}" + vbNewLine
'macro = macro + "WAIT S=5" + vbNewLine
macro = macro + "TAG POS=1 TYPE=TD ATTR=TXT:WKN" + vbNewLine
macro = macro + "TAG POS=R1 TYPE=TD ATTR=TXT* EXTRACT=TXT" + vbNewLine
iret = iim1.iimPlay(macro)
'repeat until there is result
do while (Instr(iim1.iimGetLastExtract(), "#EANF#") > 0 )
macro = "CODE:"
macro = macro + "TAG POS=1 TYPE=TD ATTR=TXT:WKN" + vbNewLine
macro = macro + "TAG POS=R1 TYPE=TD ATTR=TXT* EXTRACT=TXT" + vbNewLine
iret = iim1.iimPlay(macro)
loop
'now, extract and save
macro = "CODE:"
macro = macro + "VERSION BUILD=6120228" + vbNewLine
macro = macro + "TAB T=1" + vbNewLine
macro = macro + "TAB CLOSEALLOTHERS" + vbNewLine
macro = macro + "SIZE X=1132 Y=885" + vbNewLine
macro = macro + "SET !EXTRACT_TEST_POPUP NO" + vbNewLine
macro = macro + "SET !TIMEOUT 100" + vbNewLine
macro = macro + "SET !ERRORCONTINUE YES" + vbNewLine
macro = macro + "SET !DATASOURCE DE-Share.csv" + vbNewLine
macro = macro + "SET !DATASOURCE_COLUMNS 2" + vbNewLine
macro = macro + "SET !DATASOURCE_LINE "+Cstr(i)+ vbNewLine
'macro = macro + "URL GOTO=http://deutsche-boerse.com/dbag/dispatch/de/isg/gdb_navigation/home?active=masterdata&module=InMaster_Equi&wp={{!COL2}}&wplist={{!COL2}}&foldertype=_Equi&wpbpl=" + vbNewLine
macro = macro + "SET !EXTRACTADD {{!COL1}}" + vbNewLine
macro = macro + "SET !EXTRACTADD {{!COL2}}" + vbNewLine
'macro = macro + "WAIT S=5" + vbNewLine
macro = macro + "TAG POS=1 TYPE=TD ATTR=TXT:WKN" + vbNewLine
macro = macro + "TAG POS=R1 TYPE=TD ATTR=TXT* EXTRACT=TXT" + vbNewLine
macro = macro + "SAVEAS TYPE=EXTRACT FOLDER=* FILE=DE-WKN.csv" + vbNewLine
iret = iim1.iimPlay(macro)
next
msgbox "Done."
