2017-11-05 12 views
0

새로운 코드 작성. 나는 관찰 기능을 가진 Sikuli를 사용하려고 노력한다. 스크립트를 사용할 때 한 번만하고 다시는 결코하지 않습니다.Sikuli 1.1 행동 준수

while(1): 
def Handler(event): 
    stopObserver 
    click(image) 
    event.repeat(1)  
    pass 

    while(1): 
     onAppear("image", Handler) 
     observe(FOREVER) 

스크립트에 어떤 문제가 있습니까? 왜 스크립트는 이미지를 한 번만 클릭합니다. 이미지가 두 번 나타나면 아무 일도 일어나지 않습니다.

+0

정확하게 달성하고 싶은 것을 설명해 주실 수 있으시겠습니까? 올바른 방향을 제시하는 것이 더 쉽습니다. –

+0

관측 기능을 이해하고 싶습니다. 나는 [Sikuli Homepage] (http://doc.sikuli.org/region.html?highlight=observ#observingvisualeventsinaregion)에서 정보를 읽었습니다. 이미지를 기다리는 테스트를 작성했습니다 (예 : 계산기가 나타나고 "1" "+" "1" "="을 클릭). – foobar

+0

오늘 스크립트는 재부팅 (?) 후에 작동합니다. 'event.repeat (1)'을 사용하지 않으면 스크립트가 작동하지 않습니다. sikuli pseudo scipt는 그것을 사용하지 않습니다. – foobar

답변

0

Sikuli의 관찰자는 때때로 혼란 스러울 수 있습니다.

일반적으로 onXXXXX (관찰 이벤트 또는 이벤트)을 사용하여 관찰 할 하나 이상의 이벤트를 Region으로 등록합니다. 그런 다음 관찰자를 시작하고 나중에 필요에 따라 다시 중지하여 관찰을 Region에서 시작합니다.

그러나 화면의 다른 영역과 계속 상호 작용하는 동안 관찰자가 백그라운드에서 실행될 필요가없는 경우 대부분의 경우 시간이 느린 wait을 사용하는 것이 더 쉽습니다. 당신은 이런 식으로 작업을 수행 할 수 있습니다 스크립트 흐름을 계속하기 전

wait(pattern, waitTime) 

다음은 대기는 waitTime 동안 지속됩니다.

+0

대단히 고마워요. – foobar

+0

지역 관측자를 어떻게 시작할 수 있습니까? 나는 코드의 끝에서'관찰하다 (영원히)'를 한 번 사용한다. 나는 이것이 전에 정의 된 모든 onAppear (xxx) 정의를 시작한다고 생각했다. 핸들러에서'event.repaet (1)'을 사용해야합니까? – foobar

+0

다른 코드 스 니펫을 시도했습니다. 그 동안 내 코드는'event.repeat (1)'없이 작동합니다. 나는'while (1)'으로 시작하는 두 번째 블록을 이동하여'observe (FOREVER)'를 시작하기 위해 4 개의 공간을 남겼습니다. – foobar