Shirates에서 상대 선택기를 사용하는 방법 - 1부 -

이 글은 모바일 테스트 자동화 도구인 를 사용하는 방법을 소개합니다.

선택기 표현식



화면에서 요소를 선택하기 위해 선택자 표현식을 사용할 수 있습니다. 이것은 간단하고 강력한 표현입니다(참조).

상대 선택기



화면에서 요소를 선택한 후 상대적으로 요소 주위에 다른 요소를 가져오고 싶을 수 있습니다. 이 경우 Shirates의 상대 선택기를 사용할 수 있습니다.

상대 선택기(방향 기반)



오른쪽, 아래, 왼쪽, 위 방향으로 상대적으로 위젯을 얻을 수 있습니다.



상대 선택자




상대 선택기
설명


:오른쪽
올바른 방향의 위젯

:rightInput
올바른 방향으로 입력

:rightLabel
라벨을 올바른 방향으로

:rightImage
올바른 방향으로 이미지

:오른쪽 버튼
올바른 방향으로 버튼

:rightSwitch
올바른 방향으로 전환

:아래에
아래 방향의 위젯

:아래입력
아래 방향으로 입력

:belowLabel
아래 방향으로 라벨

:아래 이미지
아래 방향의 이미지

:아래버튼
아래 방향의 버튼

:belowSwitch
아래 방향으로 전환

:왼쪽
왼쪽 방향의 위젯

:leftInput
왼쪽 방향으로 입력

:leftLabel
라벨을 왼쪽 방향으로

:leftImage
왼쪽 방향의 이미지

:왼쪽 버튼
왼쪽 방향 버튼

:leftSwitch
왼쪽 방향으로 전환

:위에
위 방향의 위젯

:위 입력
위 방향으로 입력

:위 레이블
위 방향으로 레이블

:위 이미지
위 방향의 이미지

:위버튼
위 방향으로 버튼

:위의 스위치
위 방향으로 전환


추가 위젯 유형(입력, 레이블, 이미지, 버튼, 스위치)을 지정할 수 있습니다.

위젯



내장 위젯 정보는 다음과 같습니다.


위젯
대응(안드로이드)
해당(iOS)


상표
android.widget.TextView
XCUIElementTypeStaticText

입력
android.widget.EditText
XCUIElementTypeTextFieldXCUIElementTypeSecureTextField

영상
android.widget.ImageView
XCUIElementTypeImage

단추
android.widget.Buttonandroid.widget.ImageButtonandroid.widget.CheckBox
XCUIE요소 유형 버튼

스위치
안드로이드.위젯.스위치
XCUIE요소 유형 스위치

위젯
(무엇보다도)
(무엇보다도)



선택기 명령 예




예시
설명

<text1>:right텍스트가 "text1"인 첫 번째 요소를 선택한 다음 오른쪽 방향의 첫 번째 위젯을 선택합니다.
<text1>:right(2)텍스트가 "text1"인 첫 번째 요소를 선택한 다음 올바른 방향으로 두 번째 위젯을 선택합니다. 이는 <text1>:right(pos=2) 또는 <text1>:right([2])와 동일합니다.
<text1>:rightSwitch텍스트가 "text1"인 첫 번째 요소를 선택한 다음 오른쪽 방향의 첫 번째 스위치를 선택합니다.
<text1>:right(text2)텍스트가 "text1"인 첫 번째 요소를 선택한 다음 오른쪽 방향에서 텍스트가 "text2"인 첫 번째 위젯을 선택합니다.
<text1>:right:belowButton텍스트가 "text1"인 첫 번째 요소를 선택한 다음 오른쪽 방향의 첫 번째 위젯을 선택한 다음 아래 방향의 첫 번째 버튼을 선택합니다.




오른쪽 선택기 사용(Android)



TextView1에서



오른쪽 선택기 사용(iOS)



StaticText1에서



검색 범위



오른쪽 선택기는 기본 요소의 위쪽과 아래쪽 사이에서 오른쪽 방향으로 검색합니다.



재료



[ https://github.com/wave1008/shirates-samples-selectors ]에서 완전한 샘플 프로젝트를 얻을 수 있습니다.

SelectWithDirectionTest




import org.junit.jupiter.api.Order
import org.junit.jupiter.api.Test
import shirates.core.driver.commandextension.*
import shirates.core.testcode.UITest

class SelectWithDirectionTest : UITest() {

    @Test
    @Order(10)
    fun selectWithDirection() {

        scenario {
            case(1) {
                condition {
                    it.restartApp()
                }.action {
                    it.select("<Battery>:below")
                }.expectation {
                    it.textIs("100%")
                }
            }
            case(2) {
                action {
                    it.select("<Battery>:leftImage")
                }.expectation {
                    it.classIs("android.widget.ImageView")
                }
            }
            case(3) {
                action {
                    it.select("<Battery>:above(2)")
                }.expectation {
                    it.textIs("Notifications")
                }
            }
            case(4) {
                condition {
                    it.tap("Search settings")
                }.action {
                    it.select("<@Back>:right")
                }.expectation {
                    it.classIs("android.widget.EditText")
                }
            }
        }
    }

}


검사 결과



HTML 보고서





사양 보고서






자세한 내용은



참조Relative selector(Direction based)


결론



화면에서 요소를 선택하면 Shirates의 상대 선택기를 사용하여 상대적으로 요소 주위에 다른 요소를 가져올 수 있습니다.

오른쪽, 아래, 왼쪽, 위 방향으로 상대적으로 위젯(입력, 레이블, 이미지, 버튼, 스위치)을 얻을 수 있습니다.

좋은 웹페이지 즐겨찾기