Device Control
Real-time device streaming and control via WebRTC.
Overview
Device Control provides real-time video streaming and interactive control of mobile devices. Using WebRTC technology, you can interact with devices as if they were in your hands - with low latency touch controls, hardware buttons, and file operations.
Connection Status
The connection indicator shows the current streaming status:
| Status | Color | Description |
|---|---|---|
| Connected | Green | Device is streaming and ready for control |
| Connecting | Yellow | Establishing WebRTC connection... |
| P2P Active | Blue | Direct peer-to-peer connection established (lowest latency) |
| Disconnected | Red | Connection lost - click Refresh to reconnect |
Video Streaming
Device Farm uses WebRTC with H.264 video encoding for low-latency streaming. The video quality automatically adapts based on your network conditions.
| Quality Tier | Bitrate | FPS | Resolution |
|---|---|---|---|
| Ultra | 6 Mbps | 60 fps | 1920px |
| High | 4 Mbps | 30 fps | 1280px |
| Medium | 2 Mbps | 30 fps | 1024px |
| Low | 1 Mbps | 24 fps | 720px |
Note: iOS devices stream at a fixed 2Mbps/25fps due to WebDriverAgent limitations.
Touch & Gestures
Interact with the device using your mouse or trackpad:
Click / Tap
Single click anywhere on the video to tap on the device.
Click & Drag / Swipe
Click and drag to perform swipe gestures (scroll, slide).
Long Press
Press and hold to trigger long press actions.
Keyboard Input
Enable keyboard mode to type directly on the device.
Device Toolbar
The toolbar on the right side provides quick access to device controls:
Navigation Buttons
- Home - Press home button
- Back - Back button (Android)
- Recent Apps - App switcher (Android)
Volume Controls
- Volume Up - Increase volume
- Volume Down - Decrease volume
Capture Controls
- Take Screenshot - Capture current screen
- Start Recording - Begin video recording
- Stop Recording - End video recording
Input Controls
- Toggle Keyboard - When enabled, your keyboard input is sent directly to the device
App Management
- Install App - Install APK/IPA file
- Kill All Apps - Close all running applications
- Browse Files - Open device file browser
Test Controls
- Refresh Connection - Reconnect to device
App Installation
Install apps on the device using one of these methods:
Drag & Drop
Simply drag an APK, IPA, or .app bundle directly onto the video stream. The app will be uploaded and installed automatically.
Install from Files
Click the Install App button and select from your previously uploaded files, or upload a new file from your computer.
.app Bundle Support (iOS)
macOS .app bundles are automatically converted to ZIP format before upload. Drag the .app folder directly onto the stream.
Supported Formats
| Platform | Supported Formats |
|---|---|
| Android | .apk, .aab |
| iOS | .ipa, .app (bundle), .zip |
File Operations
Transfer files between your computer and the device:
Push File
Upload a file from your Files library to a specific path on the device.
Pull File
Download a file from the device to your computer.
Browse Files
Navigate the device filesystem with a visual file browser.
Delete File
Remove files or folders from the device storage.
Common Paths
- Android:
/sdcard/Download/ - iOS:
/var/mobile/Documents/
View-Only Mode
When a device is being used by another user, you can still view the test but cannot control the device. This is useful for:
- Monitoring test execution by team members
- Observing automation runs in real-time
- Sharing device screen during demos
In view-only mode, an orange badge indicates that controls are disabled. Wait for the test to end or ask the current user to release the device.
Troubleshooting
| Issue | Solution |
|---|---|
| Video not loading | Click Refresh to reconnect. Check your network connection. |
| High latency | Try a wired connection. Check if P2P connection is active (blue indicator). |
| Touch not responding | Ensure connection is established (green indicator). Disable keyboard mode if enabled. |
| App won't install | Check file format matches device platform. For iOS, ensure app is signed correctly. |
| Test ended unexpectedly | Test may have timed out due to inactivity or device disconnected. |