2014-01-09 3 views
0

웹 사이트에 로그인하고 특정 페이지로 이동하여 확인란을 찾을 C++ iMacro 스크립트를 작성하고 있습니다. 확인란이 존재하지 않으면 스크립트는 X 초마다 페이지를 새로 고칩니다. 체크 박스가 존재하면 선택합니다. 기본적으로 iMacro가 체크 박스를 검색하는 방법을 알아 내야합니다. 여기 내 코드는 지금까지의 :iMacro 요소 찾기

using namespace System; 
#include <string> 

int timeout = 60; 
ref class ManagedGlobals { 
public: 
    static iMacros::AppClass^ app; 
}; 

// test if element exists 
bool doesElementExist() { 
    iMacros::Status stat; 
    ManagedGlobals::app->iimDisplay("Searching for element", timeout); 
    stat = ManagedGlobals::app->iimPlay("CODE:SET !TIMEOUT_TAG 1\n" 
     + "CODE:TAG POS=8 TYPE=INPUT:CHECKBOX FORM=ACTION:/pls/PROD/bwykfreg.P_AltPin1?deviceType=C ATTR=NAME:sel_crn EXTRACT=TXT", timeout); 
    ManagedGlobals::app->iimDisplay(stat.ToString(), timeout); 
    ManagedGlobals::app->iimPlay("CODE:WAIT SECONDS=10", timeout); 
    if (stat != iMacros::Status::sOk) { 
     ManagedGlobals::app->iimDisplay("Didn't find it", timeout); 
     return false; 
    } 
    ManagedGlobals::app->iimDisplay("Found it", timeout); 
    return true; 
} 

내가 페이지에이를 테스트 한 체크 박스가 존재하지만, 스크립트를 찾을 수없는 대신 this page에 따라이 Load Failed: Failed to load the macro (syntax or I/O error) (Found wrong macro command while loading file).

을 의미 오류 코드 -1100 반환

누구나 문제를 알 수 있습니까?

답변

1

이 부분을 제거하십시오.

FORM=ACTION:/pls/PROD/bwykfreg.P_AltPin1?deviceType=C 

이 부분은 페이지에서 변경할 수 있지만 태그가 요소를 찾는 데 필요하지는 않습니다. 또한 POS = 8을 변경하여 체크 상자의 위치를 ​​변경하십시오. 1 번부터 15 번까지 시작해서 번호 변경을 확인하십시오.

또한이

stat = ManagedGlobals::app->iimPlay("CODE:SET !TIMEOUT_TAG 1\n" 
     + "TAG POS=8 TYPE=INPUT:CHECKBOX ATTR=NAME:sel_crn EXTRACT=TXT", timeout); 

코드로이

stat = ManagedGlobals::app->iimPlay("CODE:SET !TIMEOUT_TAG 1\n" 
     + "CODE:TAG POS=8 TYPE=INPUT:CHECKBOX FORM=ACTION:/pls/PROD/bwykfreg.P_AltPin1?deviceType=C ATTR=NAME:sel_crn EXTRACT=TXT", timeout); 

을 변경할 수 있습니다 : 한 번만 하나의 매크로 내부 나타날 수 있습니다. \n은 명령 줄을 분할하는 데 사용됩니다.