Appium wprowadzenie
Opublikowano ndz 19 grudnia 2021 w qa • 2 min read
Instalacja:
> brew install node # get node.js
> npm install -g appium # get appium
> npm install wd # get appium client
> appium & # start appium
> node your-appium-test.js # run your test
Pierwsze uruchomienie być może będzie wymagało -> Edit configurations -> podanie Android_Home (u mnie: /Users/user_name/Library/Android/sdk) + Java_Home (wpisz w terminal: /usr/libexec/java_home)
Instalacja Appium inspector
Jeśli jest problem z otwarciem na Mac to przesunąć do docka i statąd prawym i Open (teraz powinno działać)
Desired Capabilities for Appium Inspector:
Desired Capabilities are keys and values encoded in a JSON object, sent by Appium clients to the server when a new automation session is requested
więcej na temat desired capabilities
Jak wypełnić JSONa z desired capabilities?
Aby dostać listę dostępnych oraz ich UDID urządzeń wpisz:
adb devices
Aby dostać package name aplikacji oraz pozostałe dane wpisz:
adb shell dumpsys window windows
szukaj informacji o aplikacji w konsoli
mFocusedApp=AppWindowToken{xx token=Token{xxx ActivityRecord{xx u0 xxxx-PackageName/xxx-ActivityName t1450}}}
mInputMethodTarget=Window{xxx u0 xxxx-PackageName/xxx-ActivityName}
aby uzyskać info o podłączonych telefonach wpiszania
adb devices -l
Natomiast aby dostać szczegółowe info na temat danego telefonu to wówczas używając
adb -s <UDID telefonu> shell getprop
Przykładowy pakiet podanych informacji wygląda tak
{ "appPackage": "com.code2lead.kwad", "appActivity": "com.code2lead.kwad.MainActivity", "platformName": "Android", "deviceName": "Pixel 3XL", "udid": "8AHY0L4F9" }
Remote path może wymagać podążania
/wd/hub
Pierwszy test
from appium import webdriver
# Part 1 "Desired Capabilities"
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['automationName'] = 'UiAutomator2'
desired_caps['platformVersion'] = '7.0'
desired_caps['deviceName'] = 'WAS-LX1'
desired_caps['appPackage'] = 'com.code2lead.kwad'
desired_caps['appActivity'] = 'com.code2lead.kwad.MainActivity'
# Part 2 "WebDriver object"
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
# Part 3 "Action on the App"
# find element by id and click
ele_id = driver.find_element_by_id("com.code2lead.kwad:id/TabView")
ele_id.click()
# find element by Index value
elem_index = driver.find_element_by_android_uiautomator('UiSelector().index(5)')
elem_index.click()