-
Notifications
You must be signed in to change notification settings - Fork 10
Description
Description
tapOn fails with a context deadline exceeded HTTP timeout error when attempting to click an element via UIAutomator2, even though the tap visually fires on the emulator, but UIAutomator2 likely hangs sending the HTTP response back. All preceding steps (including inputText on the same screen) complete without issue.
Steps to Reproduce
- Run command maestro-runner --device emulator-5554 test -e TEST_EMAIL= -e TEST_PASSWORD= .maestro/login/login-success.yaml
- With the flow file below
- Observe that all steps pass up through hideKeyboard after password input, then tapOn: id="login-submit-button" fails
Expected Behavior
tapOn should send the click event to the element and the flow should continue to the next assertion.
Actual Behavior
tapOn times out after ~10.5s with:
Failed to tap: send request: Post "http://localhost/session/15870623-ef9b-40ab-9744-54da32fd1639/element/00000000-0000-0017-ffff-ffff00000040/click": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
The element is located (it has a valid element ID in the URL), but the HTTP POST to /click never returns before the client timeout. The tap does appear to execute on the emulator visually, suggesting the click is sent but the response is never received.
Environment
- OS: macOS (Apple Silicon)
- maestro-runner version: 1.0.7
- Executor: UIAutomator2 (via uia2 socket at /tmp/uia2-emulator-5554.sock)
- Device/Simulator: Android Emulator — google sdk_gphone64_arm64, Android SDK 36 (emulator-5554)
Flow File
# Relevant flow file (anonymized if needed)
appId: com.example.app
name: Login Success
commandTimeout: 20000
---
- clearState:
appId: com.example.app
- launchApp:
appId: com.example.app
newSession: true
permissions:
all: allow
- extendedWaitUntil:
visible:
id: login-email-input
timeout: 10000
- takeScreenshot: login-screen-loaded.png
- inputText:
id: login-email-input
text: 'test@example.com'
- hideKeyboard
- inputText:
id: login-password-input
text: 'testpassword'
- hideKeyboard
- tapOn:
id: 'login-submit-button' # <-- fails here
- waitForAnimationToEnd:
timeout: 3000Error Output
✗ tapOn: id="login-submit-button" (10.5s)
╰─ Failed to tap: send request: Post "http://localhost/session/15870623-ef9b-40ab-9744-54da32fd1639/element/00000000-0000-0017-ffff-ffff00000040/click": context deadline exceeded (Client.Timeout exceeded while awaiting headers)