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

[Katalon] Web Testing - 텍스트 추출하기 - xpath 활용

by 냥장판 2020. 8. 26.
반응형

 

안녕하세요 냥장판 입니다 

이번에는 웹페이지 특정 영역에서 텍스트를 추출해서 클릭하는 걸 해볼거에요.

순서는 아래와 같아요.

1. 특정 영역 Object 확인

2. Obejct의 Xpath 확인

3. Script 작성하기

 

다 귀찮고 모를 때는

📌 modifyObjectProperty 활용하기! (이게 훨씬 간단함)

 

다음(daum.net)으로 들어가보면 로그인 영역이 있어요.

거기서 카카오계정으로 로그인을 선택하려고 합니다.

1. Spy 기능 이용해서 Obejct xpath 확인하기

 

Spy 기능을 이용합니다.

브라우저 URL을 입력하고 Start 버튼을 클릭합니다.

이 부분의 Obejct 를 얻으려고 하면 영역 클릭하고 아래 단축키을 눌러주면 Obejct가 저장되요.

 

div_Daum 이라는 이름의 Object가 캡쳐된 걸 확인할 수 있어요.

아래 쪽에 보면 Selected Locator 라는 부분이 있는데,

이게 해당 영역의 xpath 입니다.

xpath에 대해 잘 정리된 글이 있어요. 아래 꼭 참고해보세요

https://testmanager.tistory.com/121

 

Selenium WebDriver의 XPath

Selenium 자동화에서 요소가 id, class, name 등과 같은 일반 로케이터에서 발견되지 않으면 XPath를 사용하여 웹 페이지에서 요소를 찾습니다. 이 튜토리얼에서는 xpath와 다른 XPath 표현식을 사용하여 ��

testmanager.tistory.com

 

 

2. 여러개 xpath 연산하기

 

위에서 영역의 xpath를 구했으면, '카카오' 라는 이름이 포함된 텍스트 영역을 추출하려고 해요.

위와 똑같은 방법으로 xpath를 알아낼 수도 있고,

 

 

캡쳐된 Obejct의 Repository에 들어가면

여기서도 xpath를 확인할 수 있습니다.

 

여기서는 //a[contains(text(),\'카카오\')] 까지만 사용할 거에요.

 

xpath를 멀티로 사용할 때 | 연산자를 사용했어요.

 

xpath 연산하는 것은 아래 URL 참고하세요.

https://www.w3schools.com/xml/xpath_operators.asp

 

XPath Operators

XPath Operators An XPath expression returns either a node-set, a string, a Boolean, or a number. XPath Operators Below is a list of the operators that can be used in XPath expressions: Operator Description Example | Computes two node-sets //book | //cd + A

www.w3schools.com

 

3. Script Mode로 Script 작성하기

Script 탭을 선택해서 Script Mode로 코드를 작성할 거에요.

이미 import 가 되어있는 Script가 작성이 되어있으면

아래 코드를 추가로 복붙해주세요

아래 첨부했음다

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
import com.kms.katalon.core.testobject.ConditionType as ConditionType
 
WebUI.openBrowser('daum.net')
 
//Create Test Obejct
TestObject to = new TestObject()
 
//Save to String 'Xpath'
String xpath_text = '//div[@id=\'inner_login\'] | .//a[contains(text(),\'카카오\')]'
 
//Save property of xpath with conditiontype
to.addProperty('xpath', ConditionType.EQUALS, xpath_text)
 
//Get Text of Test Obejct
text = WebUI.getText(to)
 
//Print text
println(text)
 
//Click Test Obejct
WebUI.click(to)
 
WebUI.closeBrowser()
 
 
cs

확인 영상이에요.

 

화면 기록 2020-08-26 오전 10.46.13.mov
5.14MB

 

 

📌 modifyObjectProperty

 

이건 WebUI에서 추가할 수 있어요.

기존에 캡쳐해둔 test object로 새로운 객체를 만드는 겁니당!

위에 보다 간단하죠?

스크립트는 아래와 같이 작성하면 됩니당

1
2
3
4
5
6
'Modify xpath of \'Login\' button'
new_btn = WebUI.modifyObjectProperty(findTestObject('Object Repository/Page_Daum/Page_/button_'), 'xpath', 'equals', '//*[@type="button"]', 
    false)
 
'Click on new_btn'
WebUI.click(new_btn)
cs

 

 

그럼 이만!

 

반응형

댓글