IMacro - Variable Setting + SaveAs CSV

I am looking for help with 2 parts of my iMacro Script ...

Part1 - Variable

      

I click on the next line of the page to access the page that I need to retrieve from.

1st Link

TAG POS=**8** TYPE=A FORM=NAME:xxyy ATTR=HREF:https://aaa.aaaa.com/en/administration/xxxx.jsp?reqID=h*

      

Second link

TAG POS=**9** TYPE=A FORM=NAME:xxyy ATTR=HREF:https://aaa.aaaa.com/en/administration/xxxx.jsp?reqID=h*

      

The pos tag is a variable, how can I get this so that when the loop starts, the macro selects the next value on the screen (i.e. selects 8,9,10)? Some screens have 100 links to click on.

Part 2 - Save CSV File

I have a saveas line in my file. But how can I make it so that only 1 csv

file is created (even if the macro is run 50 times)? Also, there is a way to format the file csv

from iMacros so that each new launch starts on a different line (currently all data is fetched to row 1 across many columns.)

Thank you in advance,

Adam

+3


source to share


1 answer


This will do what you asked. It will loop the macro and set a new position number in the macro each time.

1)

    var macro;

    macro ="CODE:";
    macro +="TAG POS={{number}} TYPE=A FORM=NAME:xxyy ATTR=HREF:https://aaa.aaaa.com/en/administration/xxxx.jsp?reqID=h*"+"\n";


for(var i=1;i<100;i++)
{

iimSet("number",i)
iimPlay(macro)

}

      



To solve the second part, you need JavaScript. The first part declares a macro, and the second part initiates the macro, and the third part is a function that saves the extracted text to a file. Every time you run it, it saves on a new line.

2)

var macroExtractSomething;

macroExtractSomething ="CODE:";
macroExtractSomething +="TAG POS=1 TYPE=DIV ATTR=CLASS:some_class_of_some_div EXTRACT=TXT"+"\n";



iimPlay(macroExtractSomething)
var extracted_text=iimGetLastExtract();

WriteFile("C:\\some_folder\\some_file.csv",extracted)




  //This function writes string into a file. It will also create file on that location
    function WriteFile(path,string)
    {

    //import FileUtils.jsm
    Components.utils.import("resource://gre/modules/FileUtils.jsm");
    //declare file
    var file = new FileUtils.File(path);

    //declare file path
    file.initWithPath(path);

    //if it exists move on if not create it
    if (!file.exists())
    {
    file.create(file.NORMAL_FILE_TYPE, 0666);
    }

    var charset = 'EUC-JP';
    var fileStream = Components.classes['@mozilla.org/network/file-output-stream;1']
    .createInstance(Components.interfaces.nsIFileOutputStream);
    fileStream.init(file, 18, 0x200, false);
    var converterStream = Components
    .classes['@mozilla.org/intl/converter-output-stream;1']
    .createInstance(Components.interfaces.nsIConverterOutputStream);
    converterStream.init(fileStream, charset, string.length,
    Components.interfaces.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER);

    //write file to location
    converterStream.writeString("\r\n"+string);
    converterStream.close();
    fileStream.close();


    }

      

+3


source







All Articles