728x90
Appium으로 뮤직 플레이어 앱(삼성 뮤직) 제어해보기
테스트 절차 | 기대 결과 | |
1. | 1. 삼성 뮤직 실행 2. 동의 선택 3. 시작하기 선택 4. 권한 동의 5. [곡] 탭 선택 6. 셔플 버튼 선택 | 음악이 재생됨 |
from appium import webdriver
desired_cap = {
"appium:deviceName": "DeviceID",
"platformName": "Android",
"appium:appPackage": "com.sec.android.app.music",
"appium:appActivity": "com.sec.android.app.music.common.activity.MusicMainActivity"
}
def music():
wd = webdriver.Remote("http://localhost:4723/wd/hub", desired_cap)
wd.implicitly_wait(5)
return wd
삼성 뮤직 실행 스크립트(따로 빼둠)
from selenium.webdriver.common.by import By
from selenium.common.exceptions import NoSuchElementException
from active import appiumtest1
from appium.webdriver.common.touch_action import TouchAction
import time
이번에 exceptions 이 부분을 처음으로 사용해봤다.
wd = appiumtest1.music()
time.sleep(2)
상성 뮤직 실행
action = TouchAction(wd)
wd.find_element(By.XPATH, '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.TextView').click()
time.sleep(1)
wd.find_element(By.XPATH, '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.TextView').click()
time.sleep(1)
wd.find_element(By.XPATH, '/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.ScrollView/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.LinearLayout[2]/android.widget.Button[1]').click()
time.sleep(1)
wd.find_element(By.XPATH, '/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.ScrollView/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.LinearLayout[2]/android.widget.Button[1]').click()
time.sleep(1)
wd.find_element(By.XPATH, '//android.view.ViewGroup[@content-desc="곡, 탭 6개 중 3번째 탭"]/android.widget.TextView').click()
time.sleep(1)
wd.find_element(By.XPATH, '//android.widget.ImageView[@content-desc="셔플 재생"]').click()
time.sleep(1)
테스트 절차의 2~6까지의 스크립트
저번에는 좌표를 지정하여 터치 스크립트를 짰는데, 해상도 이슈도 있는 것 같아서 이번에는 XPATH를 활용했다.
*XPATH 정보도 인스펙터에서 얻을 수 있음
try:
element = wd.find_element(By.XPATH, '//android.widget.FrameLayout[@content-desc="일시정지"]/android.widget.ImageView')
print("PASS")
except NoSuchElementException:
print("FAIL")
6번까지 실행 후 음악이 재생되는지를 확인하는 스크립트
해당 XPATH가 존재할 경우 PASS를 출력, 아닌 경우 FAIL을 출력해준다.

상용 앱이므로 별 이슈가 없는 것을 볼 수 있다.
728x90
'Appium' 카테고리의 다른 글
[Appium] 시나리오 (0) | 2023.11.10 |
---|---|
[Appium] 시나리오 (0) | 2023.09.16 |