tap
Wykonuje gest dotknięcia na:
- podanym elemencie. Automatycznie przewinie ekran jeśli element nie jest widoczny.
- lub na ekranie urządzenia mobilnego poprzez podanie współrzędnych
xiy
Wewnętrznie używa:
- Dotknięcie elementu:
- komendy
clickdla środowisk Web (przeglądarki Chrome/Safari lub aplikacje hybrydowe) - Android
mobile: clickGesturelub iOSmobile: tapdla aplikacji natywnych, włączając komendęscrollIntoViewdla automatycznego przewijania
- komendy
- Dotknięcie ekranu:
- komendy
actiondla środowisk Web (przeglądarki Chrome/Safari lub aplikacje hybrydowe) - Android
mobile: clickGesturelub iOSmobile: tapdla aplikacji natywnych
- komendy
Ta różnica sprawia, że komenda tap jest bardziej niezawodną alternatywą dla komendy click dla aplikacji mobilnych.
Dla aplikacji natywnych ta komenda różni się od komendy click, ponieważ automatycznie przewija do elementu za pomocą komendy scrollIntoView,
która nie jest wspierana dla aplikacji natywnych z komendą click. W aplikacjach hybrydowych lub środowiskach web, automatyczne przewijanie jest wspierane zarówno dla komend click jak i tap.
Ta komenda działa tylko z następującymi aktualnymi komponentami:
- Appium server (wersja 2.0.0 lub wyższa)
appium-uiautomator2-driver(dla Androida)appium-xcuitest-driver(dla iOS)
Upewnij się, że Twoje lokalne lub chmurowe środowisko Appium jest regularnie aktualizowane, aby uniknąć problemów z kompatybilnością.
Jeśli chcesz dotknąć określonego miejsca na ekranie i używasz zrzutu ekranu do określenia współrzędnych, pamiętaj, że współrzędne dla iOS są oparte na rozmiarze ekranu urządzenia, a nie na rozmiarze zrzutu ekranu. Rozmiar zrzutu ekranu jest większy ze względu na współczynnik pikseli urządzenia. Średni współczynnik pikseli urządzenia do iPhone'a 8 i obecnych iPadów wynosi 2, dla iPhone'ów od iPhone'a X współczynnik wynosi 3. Oznacza to, że rozmiar zrzutu ekranu jest 2 lub 3 razy większy niż rozmiar ekranu urządzenia, co oznacza, że jeśli znajdziesz współrzędne na zrzucie ekranu, podziel je przez współczynnik pikseli urządzenia, aby uzyskać prawidłowe współrzędne ekranu. Na przykład:
const screenshotCoordinates = { x: 600, y: 900 };
const dpr = 3; // Przykład dla iPhone 16
const screenCoordinates = {
x: screenshotCoordinates.x / dpr,
y: screenshotCoordinates.y / dpr
};
await browser.tap(screenCoordinates);
Parametry
| Nazwa | Typ | Szczegóły |
|---|---|---|
optionsopcjonalne | TapOptions | Opcje dotknięcia (opcjonalne) |
| Opcje dotknięcia elementu | ||
options.xopcjonalne | number | Liczba (opcjonalna, obowiązkowa jeśli ustawiono y) Tylko dla dotknięcia EKRANU, nie dla dotknięcia ELEMENTU |
options.yopcjonalne | number | Liczba (opcjonalna, obowiązkowa jeśli ustawiono x) Tylko dla dotknięcia EKRANU, nie dla dotknięcia ELEMENTU |
| Opcje dotknięcia ekranu | ||
options.directionopcjonalne | string | Może być jednym z down, up, left lub right, domyślnie down. Tylko dla dotknięcia ELEMENTU, nie dla dotknięcia EKRANU TYLKO-DLA-NATYWNYCH-APLIKACJI-MOBILNYCH |
options.maxScrollsopcjonalne | number | Maksymalna liczba przewinięć, po której zakończy wyszukiwanie elementu, domyślnie 10. Tylko dla dotknięcia ELEMENTU, nie dla dotknięcia EKRANU TYLKO-DLA-NATYWNYCH-APLIKACJI-MOBILNYCH |
options.scrollableElementopcjonalne | Element | Element, który jest używany do przewijania. Jeśli nie podano elementu, użyje następującego selektora dla iOS -ios predicate string:type == "XCUIElementTypeApplication" i następującego dla Androida //android.widget.ScrollView'. Jeśli więcej elementów pasuje do domyślnego selektora, domyślnie wybierze pierwszy pasujący element. Tylko dla dotknięcia ELEMENTU, nie dla dotknięcia EKRANU TYLKO-DLA-NATYWNYCH-APLIKACJI-MOBILNYCH |
Przykłady
it('should be able to tap an on element', async () => {
const elem = $('~myElement')
// It will automatically scroll to the element if it's not already in the viewport
await elem.tap()
})
it('should be able to swipe right 3 times in a custom scroll areas to an element and tap on the element', async () => {
const elem = $('~myElement')
// Swipe right 3 times in the custom scrollable element to find the element
await elem.tap({
direction: 'right',
maxScrolls: 3,
scrollableElement: $('#scrollable')
})
})
it('should be able to tap on screen coordinates', async () => {
await browser.tap({ x: 200, y: 400 })
})