2016-07-15 8 views
1

Sikuli API를 처음 사용하고 Sikuli-java-jar 파일을 사용하고 있습니다. 화면 및 패턴 클래스를 사용하여 데스크탑 요소를 성공적으로 클릭하고 싶습니다.Sikuli : PopUp 창에있는 Element를 클릭 할 수 없습니다.

그래서 소프트웨어를 설치하기 위해 자동화 스크립트를 만들려고했습니다. 설치 프로그램을 성공적으로 시작할 수 있지만 팝업 창에있는 다음 버튼을 클릭 할 수 없습니다.

아무런 오류 메시지가 표시되지 않습니다. 단지 이미지를 클릭하는 것이 실패하는 것입니다. enter image description here

appInstaller("E:\\Sikulimages\\tc.png"); 
     appInstallers("E:\\Sikulimages\\next.png"); 


public static void appInstaller(String path) throws FindFailed{ 
     s=new Screen(); 
     img=new Pattern(path);  
     s.exists(path); 
     s.wait(img,2000); 
     s.doubleClick(img); 
    } 

    public static void appInstallers(String path) throws FindFailed, InterruptedException{ 

     s=new Screen(); 
     img=new Pattern(path);  
     s.click(img);    
    } 
+0

아무거나 업데이트 해주세요. –

+0

어떤 오류가 발생하고 있습니까? –

+0

아무런 오류 메시지가 나타나지 않습니다. 그 이미지를 클릭하지 않는 것입니다. –

답변

1

enter image description here

나는 이유는 기본 유사성 (0.7) 작은 버튼과 텍스트의 부족이라고 생각합니다.

Sikuli는 공용 클래스 설정을 가지고 있습니다. public static double MinSimilarity = 0.7;

이 값은 대부분의 이미지 인식에는 충분하지만 작은 텍스트에서는 실패합니다. 작은 텍스트를 클릭하려면 특정 패턴에 대한 유사성을 높이거나, 그렇지 않으면 Settings.MinSimilarity = 0.9;

종종 0.9로 작은 텍스트를 인식하기에는 충분하지 않습니다. 그런 다음 0.95를 시도하면 대개 가장 작은 텍스트라도 정확히 찾아내는 데 도움이됩니다.

+0

감사합니다. 나는 그것을 살펴볼 것이다.초점 창과 관련이 없으며 클릭 시도합니다. –

1

RPWheeler의 답변 외에도 동일한 방법으로 나타나는 대상 이미지 옆에 시간이있는 경우 시간마다 더 큰 화면 클립을 가져 와서 더 큰 이미지의 어느 부분을 Sikuli에게 말할 수 있습니다. 클릭.

예 : '다음'버튼이 버튼 행의 일부인 경우 화면 클립을 사용하여 전체 행을 포함하십시오. 그런 다음 IDE에서 이미지를 두 번 클릭하고 "대상 오프셋"탭으로 이동하십시오. 여기에 이미지 예제가 표시되며 Sikuli가 클릭 할 이미지의 부분을 클릭합니다. - 기본값은 항상 사각형의 중심이지만 대상 오프셋을 사용하여 변경할 수 있습니다.

당신은 DX 및 DY 화소의 양수 또는 음수 떨어진 직사각형의 중심점이되어

t = find(yourImage).targetOffset(dx,dy) 
click(t) 

같은 코드에 동일한 것을 달성 할 수있다.

1

응용 프로그램을 설치하려면 관리자 권한이 필요합니다. 따라서 관리자 권한이 필요한 작업을 실행하려면 관리자 모드에서 sikuli를 실행해야합니다.. runSikulixcmd.bat를 마우스 오른쪽 버튼으로 클릭하고 을 선택하십시오. Sikuli를 실행하기 위해 관리자으로 실행 한 다음 테스트를 실행하십시오.

명령 프롬프트에서 테스트를 실행하는 경우 admin 명령 프롬프트에서 실행하십시오.