When to use
Use this skill whenever you are:
- Creating E2E, UI, or integration tests
- Testing login, registration, or navigation flows
- Handling permission dialogs (camera, location, notifications)
- Debugging test failures or exploring UI hierarchy
- Working with Maestro test files (.yaml)
Captions
When dealing with native permission dialogs, load the ./rules/permissions.md file for platform-specific information.
When working with Flutter apps, load the ./rules/platforms/flutter.md file for Semantics patterns.
How to use
Read individual rule files for detailed explanations and code examples:
Core
- rules/installation.md - Installing Maestro on macOS, Linux, and Windows
- rules/test-structure.md - YAML test structure, appId, env variables, and flow definition
- rules/commands.md - Complete reference of 40+ Maestro commands
- rules/selectors.md - Element targeting with id, text, index, and matchers
- rules/assertions.md - assertVisible, assertNotVisible, assertTrue, and AI assertions
- rules/interactions.md - tapOn, inputText, scroll, swipe, and gesture commands
- rules/permissions.md - iOS vs Android permission configuration and dialog handling
Platforms
- rules/platforms/android.md - Android-specific: ADB, permission dialogs, emulators
- rules/platforms/ios.md - iOS-specific: auto-dismiss dialogs, simulators, limitations
- rules/platforms/flutter.md - Flutter integration using Semantics and identifier
- rules/platforms/react-native.md - React Native with testID and accessibilityLabel
- rules/platforms/web.md - Desktop browser testing with Chromium
Advanced
- rules/advanced/parameters.md - Environment variables, external params, ${} syntax
- rules/advanced/conditions.md - Conditional execution with when: visible, platform
- rules/advanced/nested-flows.md - Reusable subflows with runFlow command
- rules/advanced/javascript.md - evalScript, runScript, and GraalJS support
- rules/advanced/waiting.md - extendedWaitUntil, waitForAnimationToEnd
- rules/advanced/repeat-retry.md - Repeat and retry patterns for flaky tests
Additional
- rules/debugging.md - Maestro Studio, hierarchy inspection, troubleshooting
- rules/screenshots.md - Screenshots, video recording, and visual evidence
- rules/ci-integration.md - GitHub Actions, GitLab CI, Maestro Cloud
- rules/best-practices.md - Semantic identifiers, atomic tests, project structure
1---2name: maestro-e2e3description: E2E UI testing with Maestro for iOS, Android, Flutter, React Native, and Web4---5
6## When to use
7
8Use this skill whenever you are:
9
10- Creating E2E, UI, or integration tests
11- Testing login, registration, or navigation flows
12- Handling permission dialogs (camera, location, notifications)
13- Debugging test failures or exploring UI hierarchy
14- Working with Maestro test files (.yaml)
15
16## Captions
17
18When dealing with native permission dialogs, load the [./rules/permissions.md](./rules/permissions.md) file for platform-specific information.
19
20When working with Flutter apps, load the [./rules/platforms/flutter.md](./rules/platforms/flutter.md) file for Semantics patterns.
21
22## How to use
23
24Read individual rule files for detailed explanations and code examples:
25
26### Core
27
28- [rules/installation.md](rules/installation.md) - Installing Maestro on macOS, Linux, and Windows
29- [rules/test-structure.md](rules/test-structure.md) - YAML test structure, appId, env variables, and flow definition
30- [rules/commands.md](rules/commands.md) - Complete reference of 40+ Maestro commands
31- [rules/selectors.md](rules/selectors.md) - Element targeting with id, text, index, and matchers
32- [rules/assertions.md](rules/assertions.md) - assertVisible, assertNotVisible, assertTrue, and AI assertions
33- [rules/interactions.md](rules/interactions.md) - tapOn, inputText, scroll, swipe, and gesture commands
34- [rules/permissions.md](rules/permissions.md) - iOS vs Android permission configuration and dialog handling
35
36### Platforms
37
38- [rules/platforms/android.md](rules/platforms/android.md) - Android-specific: ADB, permission dialogs, emulators
39- [rules/platforms/ios.md](rules/platforms/ios.md) - iOS-specific: auto-dismiss dialogs, simulators, limitations
40- [rules/platforms/flutter.md](rules/platforms/flutter.md) - Flutter integration using Semantics and identifier
41- [rules/platforms/react-native.md](rules/platforms/react-native.md) - React Native with testID and accessibilityLabel
42- [rules/platforms/web.md](rules/platforms/web.md) - Desktop browser testing with Chromium
43
44### Advanced
45
46- [rules/advanced/parameters.md](rules/advanced/parameters.md) - Environment variables, external params, ${} syntax
47- [rules/advanced/conditions.md](rules/advanced/conditions.md) - Conditional execution with when: visible, platform
48- [rules/advanced/nested-flows.md](rules/advanced/nested-flows.md) - Reusable subflows with runFlow command
49- [rules/advanced/javascript.md](rules/advanced/javascript.md) - evalScript, runScript, and GraalJS support
50- [rules/advanced/waiting.md](rules/advanced/waiting.md) - extendedWaitUntil, waitForAnimationToEnd
51- [rules/advanced/repeat-retry.md](rules/advanced/repeat-retry.md) - Repeat and retry patterns for flaky tests
52
53### Additional
54
55- [rules/debugging.md](rules/debugging.md) - Maestro Studio, hierarchy inspection, troubleshooting
56- [rules/screenshots.md](rules/screenshots.md) - Screenshots, video recording, and visual evidence
57- [rules/ci-integration.md](rules/ci-integration.md) - GitHub Actions, GitLab CI, Maestro Cloud
58- [rules/best-practices.md](rules/best-practices.md) - Semantic identifiers, atomic tests, project structure