Hoppa till huvudinnehåll

tap

Utför en tap-gest på:

  • det angivna elementet. Den kommer automatiskt att bläddra om det inte kan hittas.
  • eller på skärmen på en mobil enhet genom att ange koordinaterna x och y

Internt använder den:

  • Element-tap:
    • kommandot click för webbmiljöer (Chrome/Safari-webbläsare eller hybridappar)
    • Android mobile: clickGesture eller iOS mobile: tap för nativa appar, inklusive scrollIntoView- kommandot för automatisk bläddring
  • Skärm-tap:

Denna skillnad gör tap-kommandot till ett mer pålitligt alternativ till click-kommandot för mobilappar.

För nativa appar skiljer sig detta kommando från click-kommandot eftersom det automatiskt sveper till elementet med hjälp av scrollIntoView-kommandot, vilket inte stöds för nativa appar med click-kommandot. I hybridappar eller webbmiljöer stöds automatisk bläddring för både click och tap-kommandon.

info

Detta kommando fungerar endast med följande uppdaterade komponenter:

  • Appium-server (version 2.0.0 eller högre)
  • appium-uiautomator2-driver (för Android)
  • appium-xcuitest-driver (för iOS)

Se till att din lokala eller molnbaserade Appium-miljö uppdateras regelbundet för att undvika kompatibilitetsproblem.

För skärmtryckningar

Om du vill trycka på en specifik koordinat på skärmen och du använder en skärmdump för att bestämma koordinaterna, kom ihåg att koordinaterna för iOS baseras på enhetens skärmstorlek och inte på skärmdumpens storlek. Skärmdumpens storlek är större på grund av enhetens pixelförhållande. Det genomsnittliga pixelförhållandet fram till iPhone 8 och de nuvarande iPads är 2, för iPhones från iPhone X är förhållandet 3. Detta innebär att skärmdumpens storlek är 2 eller 3 gånger större än enhetens skärmstorlek, vilket betyder att om du hittar koordinaterna på skärmdumpen, dividera dem med enhetens pixelförhållande för att få rätt skärmkoordinater. Till exempel:

const screenshotCoordinates = { x: 600, y: 900 };
const dpr = 3; // Exempel för iPhone 16
const screenCoordinates = {
x: screenshotCoordinates.x / dpr,
y: screenshotCoordinates.y / dpr
};
await browser.tap(screenCoordinates);
Parametrar
NamnTypDetaljer
options
valfri
TapOptionsTap-alternativ (valfritt)
Element tap-alternativ
options.x
valfri
numberNummer (valfritt, obligatoriskt om y är satt)
Endast för SKÄRM-tap, inte för ELEMENT-tap
options.y
valfri
numberNummer (valfritt, obligatoriskt om x är satt)
Endast för SKÄRM-tap, inte för ELEMENT-tap
Skärm tap-alternativ
options.direction
valfri
stringKan vara en av down, up, left eller right, standard är down.
Endast för ELEMENT-tap, inte för SKÄRM-tap
ENDAST-MOBIL-NATIV-APP
options.maxScrolls
valfri
numberDet maximala antalet bläddringar tills sökningen efter elementet avbryts, standard är 10.
Endast för ELEMENT-tap, inte för SKÄRM-tap
ENDAST-MOBIL-NATIV-APP
options.scrollableElement
valfri
ElementElement som används för att bläddra inom. Om inget element anges kommer den att använda följande väljare för iOS -ios predicate string:type == "XCUIElementTypeApplication" och följande för Android //android.widget.ScrollView'. Om flera element matchar standardväljaren, kommer den som standard att välja det första matchande elementet.
Endast för ELEMENT-tap, inte för SKÄRM-tap
ENDAST-MOBIL-NATIV-APP
Exempel
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