Zum Hauptinhalt springen

tap

Führt eine Tipp-Geste aus auf:

  • entweder dem angegebenen Element. Es wird automatisch scrollen, wenn es nicht gefunden werden kann.
  • oder dem Bildschirm eines mobilen Geräts durch Angabe von x und y Koordinaten

Intern verwendet es:

  • Element-Tipp:
    • den click-Befehl für Web-Umgebungen (Chrome/Safari-Browser oder Hybrid-Apps)
    • den Android mobile: clickGesture oder iOS mobile: tap für native Apps, einschließlich des scrollIntoView Befehls für automatisches Scrollen
  • Bildschirm-Tipp:

Dieser Unterschied macht den tap-Befehl zu einer zuverlässigeren Alternative zum click-Befehl für mobile Apps.

Für native Apps unterscheidet sich dieser Befehl vom click-Befehl, da er automatisch zum Element wischt, indem der scrollIntoView-Befehl verwendet wird, der für native Apps mit dem click-Befehl nicht unterstützt wird. In Hybrid-Apps oder Web-Umgebungen wird automatisches Scrollen sowohl für click- als auch für tap-Befehle unterstützt.

Info

Dieser Befehl funktioniert nur mit den folgenden aktuellen Komponenten:

  • Appium-Server (Version 2.0.0 oder höher)
  • appium-uiautomator2-driver (für Android)
  • appium-xcuitest-driver (für iOS)

Stellen Sie sicher, dass Ihre lokale oder cloudbasierte Appium-Umgebung regelmäßig aktualisiert wird, um Kompatibilitätsprobleme zu vermeiden.

Für Bildschirm-Tipps

Wenn Sie auf eine bestimmte Koordinate auf dem Bildschirm tippen möchten und einen Screenshot verwenden, um die Koordinaten zu bestimmen, denken Sie daran, dass die Koordinaten für iOS auf der Bildschirmgröße des Geräts basieren und nicht auf der Screenshot-Größe. Die Screenshot-Größe ist aufgrund des Gerätepixelverhältnisses größer. Das durchschnittliche Gerätepixelverhältnis bis zum iPhone 8 und den aktuellen iPads beträgt 2, für iPhones ab dem iPhone X beträgt das Verhältnis 3. Das bedeutet, dass die Screenshot-Größe 2 oder 3 Mal größer ist als die Bildschirmgröße des Geräts, was bedeutet, dass wenn Sie die Koordinaten auf dem Screenshot finden, teilen Sie sie durch das Gerätepixelverhältnis, um die korrekten Bildschirmkoordinaten zu erhalten. Zum Beispiel:

const screenshotCoordinates = { x: 600, y: 900 };
const dpr = 3; // Beispiel für iPhone 16
const screenCoordinates = {
x: screenshotCoordinates.x / dpr,
y: screenshotCoordinates.y / dpr
};
await browser.tap(screenCoordinates);
Parameter
NameTypeDetails
options
optional
TapOptionsTipp-Optionen (optional)
Element-Tipp-Optionen
options.x
optional
numberZahl (optional, obligatorisch wenn y gesetzt ist)
Nur für BILDSCHIRM-Tipp, nicht für ELEMENT-Tipp
options.y
optional
numberZahl (optional, obligatorisch wenn x gesetzt ist)
Nur für BILDSCHIRM-Tipp, nicht für ELEMENT-Tipp
Bildschirm-Tipp-Optionen
options.direction
optional
stringKann einer der Werte down, up, left oder right sein, Standard ist down.
Nur für ELEMENT-Tipp, nicht für BILDSCHIRM-Tipp
NUR-MOBILE-NATIVE-APP
options.maxScrolls
optional
numberDie maximale Anzahl von Scrolls, bis die Suche nach dem Element beendet wird, Standard ist 10.
Nur für ELEMENT-Tipp, nicht für BILDSCHIRM-Tipp
NUR-MOBILE-NATIVE-APP
options.scrollableElement
optional
ElementElement, das zum Scrollen verwendet wird. Wenn kein Element angegeben wird, wird für iOS der folgende Selektor verwendet: -ios predicate string:type == "XCUIElementTypeApplication" und für Android der folgende: //android.widget.ScrollView'. Wenn mehrere Elemente dem Standardselektor entsprechen, wird standardmäßig das erste passende Element ausgewählt.
Nur für ELEMENT-Tipp, nicht für BILDSCHIRM-Tipp
NUR-MOBILE-NATIVE-APP
Beispiele
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