2013-02-03 3 views
3

내 iMacro 스크립트의이 개 부분에 대한 도움을 찾고 있어요 ...iMacro - 내가 원하는 페이지에 액세스하기 위해 내가 페이지의 때라도 라인을 클릭하고 설정 변수 +의 다른 이름으로 저장 CSV

Part1 - Variable 

에서 추출합니다.

1 링크

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

2 링크

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

루프에서 실행 중일 때, 매크로가에서 다음 값을 선택할 수 있도록 태그 POS는 어떻게이 변수 얻을 수있다 화면 (즉, 8,9,10 선택)? 일부 화면에는 100 개의 더하기 링크가 클릭됩니다.

2 부 - CSV가 내 파일에서 다른 이름으로 저장 라인이

파일에 저장합니다. 그러나 어떻게하면 1 csv 파일을 만들 수 있습니까? (매크로가 50 번 실행 되더라도)? 또한, 각각의 새로운 실행이 다른 행에서 시작하도록 iMacros 제작에서 CSV 파일을 포맷하는 방법이있다 (현재, 모든 데이터는 많은 열을 통해 1 행을 추출합니다.)

가 사전에 감사합니다,

Adam

답변

3

이것은 당신이 요구 한대로 할 것입니다. 매크로를 반복하고 매번 매크로에서 새 위치 번호를 설정합니다.

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) 

} 

. 첫 번째 부분은 매크로를 선언하고 두 번째 부분은 매크로를 시작하고 세 번째 부분은 추출 된 텍스트를 파일에 저장하는 기능입니다. 당신이 그것을 실행할 때마다 새로운 라인에 저장됩니다.

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

2) 당신에게 대답을 아이스 너무 감사드립니다. 당신이 나를 도와 주시겠습니까? 어쩌면 나는 내가 생각했던 것처럼 iMacro에 익숙하지 않을 수도 있습니다. 이 도구에 어떻게 삽입합니까? 내가 대답 1에서 내 스크립트에 줄을 배치하면 실행되지 않습니다 (자바 스크립트 버전도 시도해 봤습니까?)? – user2037960

+0

두 코드 모두 .iim 파일이 아닌 .js 파일 용입니다. .js 코드의 매크로 폴더 예제에서 DEMO-FireFox 폴더를 찾아 복사하십시오. 모든 코드를 제거하고 stackoverflow에서 코드를 배치하고 재생하십시오. 재생하지 않음 (LOOP)을 누릅니다. 그리고이 코드 TAG POS = 1 TYPE = DIV ATTR = CLASS : some_class_of_some_div EXTRACT = TXT는 작동하지 않는 대략적인 예입니다. – macroscripts