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
ochy
Internt använder den:
- Element-tap:
- kommandot
click
för webbmiljöer (Chrome/Safari-webbläsare eller hybridappar) - Android
mobile: clickGesture
eller iOSmobile: tap
för nativa appar, inklusivescrollIntoView
- kommandot för automatisk bläddring
- kommandot
- Skärm-tap:
- kommandot
action
för webbmiljöer (Chrome/Safari-webbläsare eller hybridappar) - Android
mobile: clickGesture
eller iOSmobile: tap
för nativa appar
- kommandot
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.
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.
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
Namn | Typ | Detaljer |
---|---|---|
options valfri | TapOptions | Tap-alternativ (valfritt) |
Element tap-alternativ | ||
options.x valfri | number | Nummer (valfritt, obligatoriskt om y är satt) Endast för SKÄRM-tap, inte för ELEMENT-tap |
options.y valfri | number | Nummer (valfritt, obligatoriskt om x är satt) Endast för SKÄRM-tap, inte för ELEMENT-tap |
Skärm tap-alternativ | ||
options.direction valfri | string | Kan 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 | number | Det 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 | Element | Element 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
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 })
})