I Macros -
iimPlay(loginMacro);
// Fill username field loginMacro += "TAG POS=1 TYPE=INPUT ATTR=NAME:username CONTENT=testuser@example.com" + "\n"; i macros
function downloadFiles(fileUrls) for (var i = 0; i < fileUrls.length; i++) downloadMacro = "CODE:"; downloadMacro += "SET !DOWNLOAD FOLDER=C:\Downloads" + "\n"; downloadMacro += "SET !DOWNLOAD WAIT YES" + "\n"; downloadMacro += "URL GOTO=" + fileUrls[i] + "\n"; downloadMacro += "WAIT SECONDS=5" + "\n"; i++) downloadMacro = "CODE:"
// Click submit button loginMacro += "TAG POS=1 TYPE=BUTTON ATTR=TXT:Sign&&In" + "\n"; downloadMacro += "WAIT SECONDS=5" + "\n"
This production-ready code handles error cases, includes logging, and demonstrates real-world web automation patterns using iMacros.
// ========== SAVE DATA TO CSV ========== function saveDataToCSV(data, filename) if (data.length === 0) iimDisplay("No data to save."); return; // Create CSV header var csvContent = "Page,Position,Title,URL,Timestamp\n"; // Add data rows for (var i = 0; i < data.length; i++) var row = [ data[i].page, data[i].position, '"' + data[i].title.replace(/"/g, '""') + '"', // Escape quotes '"' + data[i].url + '"', data[i].timestamp ]; csvContent += row.join(",") + "\n"; // Save using iMacros SAVEAS var saveMacro = "CODE:"; saveMacro += "SAVEAS TYPE=EXTRACT FOLDER=* FILE=" + filename + "\n"; saveMacro += "ADD !EXTRACT " + csvContent + "\n"; iimPlay(saveMacro); // Alternative: Display content for manual copy iimDisplay("CSV Content:\n" + csvContent.substring(0, 500) + "...");