core/commands/native_tap/native_tap library

Classes

NativeTapAdbExecutionFailed
adb binary could not be launched.
NativeTapAdbFailed
adb shell input tap failed: non-zero exit, or an exception in its output with exit code 0.
NativeTapAmbiguous
Several native elements matched query and no --index was given.
NativeTapAndroid
Android tap succeeded. x/y are the physical pixels that were tapped; text is the matched label when the tap was by --text.
NativeTapDevicePixelRatioUnavailable
--logical was given but neither the app nor adb shell wm density reported a device pixel ratio.
NativeTapIndexOutOfRange
--index is past the last of the count matches for query.
NativeTapInputInjectionBlocked
Android refused the injected tap (SecurityException / INJECT_EVENTS). Some OEM builds (Xiaomi/HyperOS, OPPO/OnePlus/Realme) block it until a Developer options switch is on. details is what adb printed.
NativeTapIosSimulator
iOS Simulator tap injected through the simulator's HID stack.
NativeTapIosSimulatorAccessibilityUnavailable
--text on the iOS simulator can't read the accessibility tree, and retrying won't help (no Xcode toolchain, unknown simulator, a CoreSimulator without the accessibility API). Nothing was tapped, and there is no in-process fallback for --text.
NativeTapIosSimulatorFailed
The iOS Simulator HID tap may have been partially delivered (e.g. touch down sent, touch up failed). No fallback tap is attempted, since that could tap twice.
NativeTapIosSimulatorFallback
iOS Simulator HID tap was unavailable, so the tap went through the in-process path (UIApplication.sendEvent) instead.
NativeTapIosSimulatorFramesUnmapped
The iOS simulator accessibility tree had labels, but the helper could not tell where on the screen they are (frames it could not map from the owning app's orientation), so nothing can be tapped by label.
NativeTapIosSimulatorOrientationUnknown
The iOS Simulator interface orientation could not be mapped, so nothing was tapped. No fallback tap is attempted: it could hit the app behind a SpringBoard dialog instead of the dialog.
NativeTapIosSimulatorOutOfBounds
The coordinates are outside the iOS Simulator screen.
NativeTapIosSimulatorTapUnavailable
--text on the iOS simulator found a match but could not tap it, or has no simulator to tap. Nothing was tapped.
NativeTapIosSimulatorTreeUnreadable
--text on the iOS simulator kept failing to read the accessibility tree until the timeout (e.g. reads timed out). reason is the last failure. Nothing was tapped.
NativeTapMacosUnsupported
macOS — not supported. x/y are null for --text.
NativeTapNoMatch
No native element matched query before the timeout. visibleLabels are the labels in the last window dump (Android) or accessibility tree (iOS simulator), in screen order.
NativeTapNoSession
No active fdb session found.
NativeTapPhysicalIosUnsupported
Physical iOS device — not yet supported. x/y are null for --text.
NativeTapPlatformUnsupported
Unsupported platform.
NativeTapResult
Result of a nativeTap invocation.
NativeTapUiDumpFailed
No usable uiautomator dump before the timeout. reason is the last failure, e.g. ERROR: could not get idle state.

Functions

nativeTap(NativeTapInput input) → Future<NativeTapResult>
Taps native (non-Flutter) UI elements using platform-specific tools.

Typedefs

NativeTapCandidate = ({String label, int x, int y})
One element matching a --text query, for NativeTapAmbiguous.
NativeTapInput = ({int? index, bool logical, String? text, int? timeoutSeconds, double? x, double? y})
Input parameters for nativeTap.