Я пишу тесты Appium UI для своего iOS-приложения. Некоторые из тестов имеют такой рабочий процесс:
- приложение отправляется в фоновый режим
- пользователь «принудительно прикасается» к значку приложения, пока не появится меню (ярлыки)
- приложение запускается с этого ярлыка
Моя среда:
- Симулятор iOS 13.2
- приложение 1.15.0
- Appium Python-клиент 0.47
Я пробовал такой код (Python), он не выполняет «принудительное касание»:
self.driver.background_app(-1) # this works: sends an app to backround
args = {'duration': 5, 'x': 200, 'y': 200}
self.driver.execute_script("mobile:touchAndHold", args) # this doesn't work: force touch on Home screen
(Я пытался настроить координаты, например (150 200), (260 400) - значок приложения не нажимался).
Я пробовал AppleScript, но все, что я могу сделать, это активировать приложение Simulator. :)
Что я нашел, но это не работает:
https://saucelabs.com/blog/how-to-automate-3d-force-touch-with-appium: в этом посте команда «press» использовалась с «element» = AppName, но мой драйвер селена говорит, что «press» требует «x», «y» , а не "элемент"
https://developers.perfectomobile.com/display/TT/Using+iOS+3D+Touch: в этом посте используется driver.executeScript("mobile:touch:tap", parms)
, но мой драйвер говорит, что нет команды "mobile:touch:tap":
selenium.common.exceptions.WebDriverException: Message: Unknown mobile command 'touch:tap'. Only scroll, swipe, pinch, doubleTap, twoFingerTap, touchAndHold, tap, dragFromToForDuration, selectPickerWheelValue, alert, setPasteboard, getPasteboard, source, getContexts, installApp, isAppInstalled, removeApp, launchApp, terminateApp, queryAppState, activateApp, viewportScreenshot, startPerfRecord, stopPerfRecord, installCertificate, startLogsBroadcast, stopLogsBroadcast, batteryInfo, deviceInfo, activeAppInfo, pressButton, enrollBiometric, sendBiometricMatch, isBiometricEnrolled, clearKeychains, getPermission, siriCommand commands are supported.
Я просмотрел документацию/код XCUITestDriver, например. https://github.com/appium/appium-xcuitest-driver/blob/master/lib/commands/execute.js и не видит ничего, связанного с 3D-касанием.
Итак, знаете ли вы:
1. как автоматизировать 3D-касание значка приложения в симуляторе iOS?
2. Как проверить, поддерживается ли XCUITest-Driver?
3. Можно ли автоматизировать что-то вроде AppleScript?
Заранее спасибо :)