don't stop believing

Similarity와 Target offset 사용하기 본문

Testing Automation/SikuliX

Similarity와 Target offset 사용하기

Tongchun 2018. 1. 15. 13:51

이번에는 Similarity와 Target offset을 알아보겠습니다.


Similarity는 이미지의 유사성입니다. 찾으려는 이미지와 얼마나 유사한지를 정의하는 설정입니다.

Target offset은 이미지를 찾고 해당 이미지에 좌표에 따른 액션을 하게 하는 것입니다.


먼저 이전에 했던 계산기 스크립트를 다른이름으로 저장합니다. 메뉴 바에서 파일 > 다른 이름으로 저장 합니다.

저는 offset으로 저장했습니다.


offset으로 저장된 스크립트에서 숫자패드까지 삭제합니다. 그리고 실행해 보면 계산기를 실행하는 것까지 진행될 것입니다.

전에는 wate()함수에 숫자패드만 캡처했는데 이번에는 X - + = 까지 캡처합니다.


이제 Similarity와 offset을 확인해 보겠습니다.

먼저 실행된 계산기를 화면의 가운데 쯤으로 이동시킵니다. 그리고 wait()함수안에 새로 캡처된 숫자패드 이미지를 한번 클립합니다.

그럼 패턴설정이라는 창이 실행됩니다.

좌측 상단에 있는 매칭 미리보기 탭을 클릭합니다.

그럼 현재 화면이 캡처 되면서 숫자패드 이미지에 대한 매칭 상태를 확인할 수 있습니다. 매칭하려는 이미지 부분이 붉은 색으로 표시됩니다.

패턴 설정 하단에 패턴매칭 비율을 조정하는 슬라이드 바가 있습니다. 0에서 부터 1까지 설정할 수 있습니다.

슬라이드 바를 조절해 보면 화면에서 이미지 패턴에 대한 매칭 비율을 확인할 수 있습니다. 얼마나 비슷한지를 확인하는 것입니다.

만약 찾으려는 이미지가 얼마만큼 비슷해야 할지를 설정할 때는 슬라이드 바를 조절 후 Apply 버튼을 클릭해 주면 설정 됩니다.


간혹 여러개의 택스트 중 특정 택스트를 찾으려고 할때는 잘못 매칭되는 경우가 있습니다. 계산기 스크립트에서 실행(R) 이미지를 찾으려고 할때 설정 또는 다른 메뉴를 선택하는 경우가 발생하기도 합니다. 이럴때 매칭 비율을 높여주면 실행(R)만 찾을 수 있습니다.


이제 offset으로 넘어갑니다.

offset은 매칭 하려는 작은 이미지를 큰 이미지의 위치(좌표값)로 찾는 방법입니다.

Sikuli 스크립트로 돌아가서 click()함수를 타이핑합니다. 그리고 wait()함수에 있는 숫자패드 이미지를 복사해서 click()함수 안에 넣습니다.

그리고 click()함수에 있는 숫자패드 이미지를 클릭해 패턴설정 창을 열어줍니다.

패턴설정 창의 대상위치 탭으로 이동하고 숫자패드 이미지에서 1이 있는 위치에 클릭해 줍니다.

대상위치 창의 대상 위치 좌료가 변경된것을 확인할 수 있습니다. 그리고 Apply를 클릭하고 확인을 클릭합니다.

그럼 스크립트 에디트 창의 wait()함수안에 있는 이미지에 1 위에 붉은색 +표가 추가된 것을 확인할 수 있습니다.

위 스크립트를 실행하 보면 숫자패드에 1을 클릭한 것을 확인할 수 있습니다.

이렇게 변경되지 않는 이미지의 경우 전체 이미지를 캡처해서 해당 이미지 안에서 아무스 조작을 할 수 있습니다.


이제 offset을 이용해서 1 + 7 =을 차례대로 wait()함수를 써서 작성해 봅시다.

wait()함수를 복사하고 이미지를 클릭해 패턴설정 창을 불러 대상위치 탭에서 찾으로는 위치를 확인해 주면 됩니다.

이렇게 하면 더 쉽게 스크립트를 작성할 수 있습니다.


Comments