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
xochy
Internt använder den:
- Element-tap:
- kommandot
clickför webbmiljöer (Chrome/Safari-webbläsare eller hybridappar) - Android
mobile: clickGestureeller iOSmobile: tapför nativa appar, inklusivescrollIntoView- kommandot för automatisk bläddring
- kommandot
- Skärm-tap:
- kommandot
actionför webbmiljöer (Chrome/Safari-webbläsare eller hybridappar) - Android
mobile: clickGestureeller iOSmobile: tapfö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 |
|---|---|---|
optionsvalfri | TapOptions | Tap-alternativ (valfritt) |
| Element tap-alternativ | ||
options.xvalfri | number | Nummer (valfritt, obligatoriskt om y är satt) Endast för SKÄRM-tap, inte för ELEMENT-tap |
options.yvalfri | number | Nummer (valfritt, obligatoriskt om x är satt) Endast för SKÄRM-tap, inte för ELEMENT-tap |
| Skärm tap-alternativ | ||
options.directionvalfri | 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.maxScrollsvalfri | 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.scrollableElementvalfri | 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 })
})