Przejdź do głównej treści

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 x i y

Wewnętrznie używa:

  • Dotknięcie elementu:
    • komendy click dla środowisk Web (przeglądarki Chrome/Safari lub aplikacje hybrydowe)
    • Android mobile: clickGesture lub iOS mobile: tap dla aplikacji natywnych, włączając komendę scrollIntoView dla automatycznego przewijania
  • Dotknięcie ekranu:
    • komendy action dla środowisk Web (przeglądarki Chrome/Safari lub aplikacje hybrydowe)
    • Android mobile: clickGesture lub iOS mobile: tap dla aplikacji natywnych

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.

informacja

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ą.

Dla dotknięć ekranu

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
NazwaTypSzczegóły
options
opcjonalne
TapOptionsOpcje dotknięcia (opcjonalne)
Opcje dotknięcia elementu
options.x
opcjonalne
numberLiczba (opcjonalna, obowiązkowa jeśli ustawiono y)
Tylko dla dotknięcia EKRANU, nie dla dotknięcia ELEMENTU
options.y
opcjonalne
numberLiczba (opcjonalna, obowiązkowa jeśli ustawiono x)
Tylko dla dotknięcia EKRANU, nie dla dotknięcia ELEMENTU
Opcje dotknięcia ekranu
options.direction
opcjonalne
stringMoż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.maxScrolls
opcjonalne
numberMaksymalna 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.scrollableElement
opcjonalne
ElementElement, 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
element.tap.example.js
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()
})

element.tap.scroll.options.example.js
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')
})
})

screen.tap.example.js
it('should be able to tap on screen coordinates', async () => {
await browser.tap({ x: 200, y: 400 })
})

Welcome! How can I help?

WebdriverIO AI Copilot