본문 바로가기
🎪 놀고있네/Katalon

[Katalon] Web Testing - Element 검색해서 클릭하기

by 냥장판 2020. 10. 21.

안녕하세요?

오늘은 element 중 내가 원하는 텍스트를 가진 아이를 찾아서 클릭하는 것을 해보려고 합니다.

예시 사이트로 다음 웹툰을 사용해보도록 하죠.

 

 

 

저는 xpath를 이용해서 위치를 찾을건데,

그전에 Chropath 를 설치해서 사용햇는데 selector 찾는데 유용합니다.

chrome.google.com/webstore/detail/chropath/ljngjbnaijcbncmcnjfhigebomdlkcjo?hl=ko&load=1

 

ChroPath

ChroPath helps to generate and validate selectors like relative xpath with iframe,svg support. It also generate english testcases.

chrome.google.com

설치하면 개발자모드에서 확장프로그램으로 사용할 수 있어요.

 

내가 원하는 element의 텍스트 위치를 클릭합니다.

저는 볍신을 부탁해라는 웹툰을 찾을건데,

해당 텍스트를 찾기위해서는 xpath가 가진 규칙을 파악해야해요.

 

그리고 다른 웹툰 텍스트의 절대위치의 xpath를 복사하고,

 

 

 

다른 위치로 복사합니다.

 

 

 

그럼 얼추 규칙을 확인할 수있는데요.

아래 동영상 꼭 클릭해서 보시길 바랍니당.

 

 

이 텍스트 element가 가진 규칙은 아래와 같고,

비슷한 xpath에서 xpath 안에 index 만 변하는 구조에요.

index를 ${value} 라해주고 이 value를 변수로 가진 스크립트를 작성할 거에요

value라는 이름 대신 다른 거로 해줘도 되는데,

기본은 ${변수명} 입니다.

 

 

 

 

테스트 오브젝트를 만들어요.

 

 

오브젝트 속성을 추가합니다.

 

 

여기에 변수 value를 가지는 xpath 를 추가합니다.

 

 

 

그리고 꼭!! Detect object by 를 설정해주세요.

 

 

 

 

그리고 TC를 생성한다음에

variable에서 이 value 변수를 number 타입으로 등록하고

 

 

 

 

웹툰 타이틀 명을 받아오기 위해 string 타입의 변수(webtoonTitle)을 생성합니다.

 

 

 

 

그리고 스크립트를 작성할 때,

FindWebtoon test obejct를 사용할 때마다 아래 variable을 꼭꼭 만들어주세요!

 

 

 

 

메뉴얼 모드 첨부합니다.

 

 

 

스크립트 첨부하니까 참고하세요

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
WebUI.openBrowser('http://webtoon.daum.net/#sort=&genre=&tab=finish')
 
WebUI.maximizeWindow()
 
WebUI.waitForPageLoad(10)
 
try {
    while (true) {
 
        'store title of webtoons'
        webtoonTitle = WebUI.getText(findTestObject('FindWebtoon/FindWebtoon', [('value') : value]))
 
        if (webtoonTitle.toString().contains('볍신을 부탁해')) {
            WebUI.click(findTestObject('FindWebtoon/FindWebtoon', [('value') : value]))
 
            break
        }
        
        value += 1
    }
}
finally { 
    WebUI.closeBrowser()
}
 
cs

 

그럼 이만!

댓글