tap
Виконує же ст натискання на:
- або вказаний елемент. Він автоматично прокрутить екран, якщо елемент не знайдено.
- або на екрані мобільного пристрою, надаючи координати
xтаy
Внутрішньо використовує:
- Натискання на елемент:
- команду
clickдля веб-середовищ (браузери Chrome/Safari або гібридні додатки) - Android
mobile: clickGestureабо iOSmobile: tapдля нативних додатків, включаючи командуscrollIntoViewдля автоматичної прокрутки
- команду
- Натискання на екран:
- команду
actionдля веб-середовищ (браузери Chrome/Safari або гібридні додатки) - Android
mobile: clickGestureабо iOSmobile: tapдля нативних додатків
- команду
Ця відмінність робить команду tap більш надійною альтернативою команді click для мобільних додатків.
Для нативних додатків ця команда відрізняється від команди click тим, що вона автоматично прокручує до елемента, використовуючи команду scrollIntoView,
яка не підтримується для нативних додатків з командою click. У гібридних додатках або веб-середовищах автоматична прокрутка підтримується як для команд click, так і для tap.
Ця команда працює лише з наступними актуальними компонентами:
- Appium сервер (версія 2.0.0 або вище)
appium-uiautomator2-driver(для Android)appium-xcuitest-driver(для iOS)
Переконайтеся, що ваше локальне або хмарне середовище Appium регулярно оновлюється, щоб уникнути проблем із сумісністю.
Якщо ви хочете натиснути на певні координати на екрані і використовуєте скріншот для визначення координат, пам'ятайте, що координати для iOS базуються на розмірі екрану пристрою, а не на розмірі скріншоту. Розмір скріншоту більший через співвідношення пікселів пристрою. Середнє співвідношення пікселів пристрою до iPhone 8 та поточних iPad становить 2, для iPhone, починаючи з iPhone X, це співвідношення становить 3. Це означає, що розмір скріншоту в 2 або 3 рази більший, ніж розмір екрану пристрою, що означає, що якщо ви знаходите координати на скріншоті, поділіть їх на співвідношення пікселів пристрою, щоб отримати правильні екранні координати. Наприклад:
const screenshotCoordinates = { x: 600, y: 900 };
const dpr = 3; // Приклад для iPhone 16
const screenCoordinates = {
x: screenshotCoordinates.x / dpr,
y: screenshotCoordinates.y / dpr
};
await browser.tap(screenCoordinates);