Wait using Script Loop

From iMacros

Jump to: navigation, search

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."