2013-02-03 3 views
3

Je suis à la recherche de l'aide avec 2 parties de mon iMacro Script ...iMacro - Réglage SaveAs Variable + CSV

Part1 - Variable 

Je suis en cliquant sur la ligne follwoing d'une page afin d'accéder à la page que j'ai besoin extraire de.

1er Lien

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

2ème lien

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

La balise pos est la variable, comment puis-je obtenir cela pour que lors de l'exécution sur la boucle, la macro sélectionnera la valeur suivante sur la écran (c.-à-choisir 8,9,10)? Certains écrans ont plus de 100 liens à cliquer.

Partie 2 - Enregistrer le fichier CSV

J'ai la ligne saveas dans mon dossier. Mais comment puis-je faire en sorte qu'il y ait seulement 1 fichier csv créé (même si la macro est exécutée 50 fois)? Aussi, est-il un moyen de formater le fichier CSV du iMacros afin que chaque nouvelle course commence sur une autre ligne (actuellement, toutes les données des extraits à la ligne 1 dans plusieurs colonnes.)

Nous vous remercions à l'avance,

Adam

Répondre

3

Cela fera ce que vous avez demandé. Il va boucler la macro et chaque fois définir le nouveau numéro de position dans la macro.

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) 

} 

Pour la solution de la deuxième partie, vous aurez besoin de scripts JavaScript. La première partie déclare la macro et la deuxième partie initie la macro et la troisième partie est la fonction qui enregistre le texte extrait dans un fichier. Chaque fois que vous l'exécutez, vous économisez sur la nouvelle ligne.

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(); 


    } 
+0

Merci beaucoup ICED pour la réponse. Pouvez-vous s'il vous plaît m'aider, comme peut-être je ne suis pas familier avec iMacro comme je le pensais. Comment est-ce que j'insère ceci dans l'outil. Lorsque je place les lignes de la réponse 1 dans mon script, il ne se lance pas (j'ai aussi essayé la version de script java)? – user2037960

+0

Les deux codes sont pour le fichier .js pas pour le fichier .iim. Trouver dans le dossier DEMO-FireFox à l'intérieur des exemples de dossiers de macros dans le code .js et le copier. Supprimez tout le code et placez le code du stackoverflow et jouez le. Appuyez sur Play not Play (LOOP). Et ce code TAG POS = 1 TYPE = DIV ATTR = CLASSE: some_class_of_some_div EXTRACT = TXT est juste un exemple approximatif qui ne fonctionnera pas. – macroscripts