2014-07-22 4 views
1

처음으로 실행될 때 "휴지통"을 지울 수있는 sikuli 스크립트를 작성하고 비어있는 경우 아이콘을 확인해야합니다 (휴지통이 비어 있음)Sikuli 스크립팅

마우스 오른쪽 단추 ("휴지통으로-1"휴지통이 가득 "때> 이미지 - : -하지가 존재하는 동안 ("휴지통으로-1.png ")를

1을 시도해보십시오 다음

내가 노력 코드입니다 .png ") ->"휴지통을 마우스 오른쪽 버튼으로 클릭 "전체 아이콘. click ("EmptyRecycle.png") -> 모든 항목을 삭제하는 확인 이미지.

click("1406033619416.png") --> Image of "Recycle bin" is empty 
print ("Recycle bin has been emptied") 
else: 
while exists ("RecycleBin.png"): 
print ("Recycle bin is already empty") 

한번에 2 - 되지 않음 ("휴지통으로-1.png") 존재하는 동안 : 마우스 오른쪽 단추 ("휴지통으로-1.png") 클릭 ("EmptyRecycle.png")를

click("1406033619416.png") 
print ("Recycle bin has been emptied") 
else: 
print ("Recycle bin is empty") 

내 문제는 while 루프가 실행되기 전에 while 루프이거나 sikuli에서 else 파트가 실행 된 것입니다. 휴지통이 비어 있거나 가득 차면 sikuli는 완전한 분석을 수행하지 않고 필요에 따라 실행합니다.

내가 sikuli와 python에 비교적 익숙하지 않기 때문에 아무에게도이 문제에 대해 도움을 주시기 바랍니다.

덕분에, 첫 번째 수단으로 V.Prashanth

+0

귀하의 질문에 명확하지 않습니다. 휴지통이 실제로 가득 차면 Sikuli가 '빈'휴지통의 그림과 부정확하게 일치합니까? 그 반대의 경우도 마찬가지입니다 (Sikuli는 실제로 비어있을 때 전체 휴지통의 그림과 부정확하게 일치합니다)? – autoKarma

+0

예, "휴지통"아이콘이 비어 있다고 표시하더라도 sikuli는 휴지통을 비우고 오류를 발생시킵니다.위의 코드에 따르면, 나는 "휴지통이 비어 있습니다"라는 다른 부분을 인쇄했습니다.이 부분은 전혀 발생하지 않습니다. – user3836459

답변

2

는, 아이콘의 그림이 Sikuli IDE에서 코드에 표시되는 위치로 이동합니다. 그림을 클릭 한 다음 일치하는 미리보기 탭으로 이동하여 유사도를 0.7에서 기본값 (.9 또는 .95)으로 변경하고 문제가 해결되는지 확인하십시오.

전체 휴지통과 빈 휴지통의 그림이 매우 유사하기 때문에 유사성을 높이면 Sikuli는 사용자가 본 그림과 거의 동일 (90 % 또는 95 % 일치) 할 때만 일치를 허용합니다. 70 % 일치하는 항목에 대해 일치 항목을 반환하는 것이 아니라 IDE에서 캡처 한 것입니다.

그래도 문제가 해결되지 않으면 시도해 볼만한 다른 사항이있을 수 있지만 먼저 시도해 보겠습니다.

0

autoKarma가 있습니다. 유사성을 높여야합니다. 휴지통 아이콘이 정적이어서 99 %로 끝까지 밀어 넣을 것입니다. 참고로 IDE는 아래 ".similar (0. ##)"텍스트를 표시하지 않지만 IDE가 저장시 생성하는 .py 파일을 검사하면 거기에있을 것입니다.

Sikuli에 대한 나의 경험에 비추어 볼 때, Sikuli가 필연적으로 패턴 인식 기능을 사용할 수있게 해주는 많은 루프가 있습니다. 아래의 코드는 테스트되지 않은 코드이며 Mac을 느슨하게 반영합니다.하지만 적어도 지뢰가 지워지기 전에 "이 지우기를 원합니 까?"라는 경고가 나오기 때문에 지문 인식기가 다를 수 있습니다.

def take_out_the_trash(): 
    while exists(Pattern("Full_RecycleBin.png").similar(0.99)): 
     rightClick("Full_RecycleBin.png") 
     wait 1 
     while exists(Pattern("EmptyRecycle_Button.png").similar(0.99)): 
      click("EmptyRecycle_Button.png") 
      wait 1 
     while exists (Pattern("Emptying_trash_in_progress.png").similar(0.90)): 
      wait 2 

take_out_the_trash() 

"Emptying_trash_in_progress"그림의 경우 그림에서 진행률 막대가 나타나지 않도록주의하십시오. 참조 할 수있는 정적 텍스트/메뉴를 찾으십시오.