# openatx/uiautomator2

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/openatx-uiautomator2).**

7,864 stars · 1,549 forks · Python · mit

## Links

- GitHub: https://github.com/openatx/uiautomator2
- awesome-repositories: https://awesome-repositories.com/repository/openatx-uiautomator2.md

## Topics

`python` `test` `uiautomator`

## Description

uiautomator2 is an Android device automation tool and UI testing library. It functions as a framework for automating user interface interactions and managing device states via a remote client.

The project provides a remote management interface for controlling Android applications, simulating user gestures, and managing system settings. It enables the analysis of XML UI hierarchies to locate interface elements and verify application behavior.

The tool covers broad capability areas including application lifecycle management, device connectivity, and file system operations. It also includes system interface controls for the clipboard and notification panels, as well as display management for orientation and screen captures.

The framework utilizes a client-server agent architecture and HTTP-based remote procedure calls to execute commands on target devices.

## Tags

### Mobile Development

- [Android Automation Frameworks](https://awesome-repositories.com/f/mobile-development/automation-qa/android-automation-frameworks.md) — Implements a full framework for automating user interactions and interface responses on Android devices.
- [Android Application Management](https://awesome-repositories.com/f/mobile-development/android-application-management.md) — Provides control over Android system settings, application management, and filesystem access.
- [UI Testing Libraries](https://awesome-repositories.com/f/mobile-development/android-ecosystem/android-libraries/ui-testing-libraries.md) — Provides a comprehensive library for locating interface elements and verifying application behavior on Android.

### Networking & Communication

- [Android Remote Control Interfaces](https://awesome-repositories.com/f/networking-communication/remote-access-control/android-remote-control-interfaces.md) — Provides a comprehensive interface for remote Android device interaction and system-level operation execution. ([source](https://cdn.jsdelivr.net/gh/openatx/uiautomator2@master/README.md))

### Part of an Awesome List

- [UI Hierarchy Parsing](https://awesome-repositories.com/f/awesome-lists/data/html-and-xml-parsing/xml-parsing/ui-hierarchy-parsing.md) — Parses the Android screen structure into an XML tree to identify and locate interface elements.

### Graphics & Multimedia

- [Hierarchy Analysis](https://awesome-repositories.com/f/graphics-multimedia/streaming-distribution/screen-mirroring/ui-hierarchy-mirroring/hierarchy-analysis.md) — Exports the current screen structure to XML format to identify and analyze the arrangement of interface elements. ([source](https://cdn.jsdelivr.net/gh/openatx/uiautomator2@master/README.md))

### Operating Systems & Systems Programming

- [Android Instrumentation](https://awesome-repositories.com/f/operating-systems-systems-programming/system-instrumentation-frameworks/android-instrumentation.md) — Utilizes the native Android instrumentation framework to inject events and inspect application state.

### Testing & Quality Assurance

- [Android UI Testing](https://awesome-repositories.com/f/testing-quality-assurance/android-ui-testing.md) — Verifies application behavior on Android devices by simulating user inputs and inspecting the UI hierarchy.
- [UI Element Selectors](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/browser-ui-interaction/ui-element-selectors.md) — Finds specific interface objects using selectors or path queries to target them for automated actions. ([source](https://cdn.jsdelivr.net/gh/openatx/uiautomator2@master/README.md))
- [Coordinate-Based Interactions](https://awesome-repositories.com/f/testing-quality-assurance/screen-swipe-simulations/coordinate-based-interactions.md) — Translates high-level interaction requests into raw X and Y screen coordinates for precise touch injection.
- [Mobile End-to-End Testing](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/e2e-integration-testing/mobile-end-to-end-testing.md) — Executes end-to-end test scripts that interact with the Android OS and third party apps.
- [UI Element Interactions](https://awesome-repositories.com/f/testing-quality-assurance/ui-element-interactions.md) — Performs direct actions on specific interface objects, including clicking, dragging, pinching, and scrolling. ([source](https://cdn.jsdelivr.net/gh/openatx/uiautomator2@master/README.md))
- [Display State Controllers](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/user-interaction-simulation/device-and-network-emulators/virtual-device-orchestrators/display-state-controllers.md) — Manages screen power states, adjusts device orientation, and captures screenshots of the display. ([source](https://cdn.jsdelivr.net/gh/openatx/uiautomator2@master/README.md))

### Software Engineering & Architecture

- [Application Lifecycle Management](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management.md) — Provides utilities for managing the installation, startup, and shutdown of Android applications. ([source](https://cdn.jsdelivr.net/gh/openatx/uiautomator2@master/README.md))

### System Administration & Monitoring

- [Device File Transfers](https://awesome-repositories.com/f/system-administration-monitoring/device-file-transfers.md) — Supports moving files between a host machine and a target Android device via push and pull operations. ([source](https://cdn.jsdelivr.net/gh/openatx/uiautomator2@master/README.md))

### User Interface & Experience

- [Key Sequence Simulators](https://awesome-repositories.com/f/user-interface-experience/modifier-key-simulators/key-sequence-simulators.md) — Triggers hardware and software key presses to simulate user navigation or lock the screen. ([source](https://cdn.jsdelivr.net/gh/openatx/uiautomator2@master/README.md))
- [Text Input Managers](https://awesome-repositories.com/f/user-interface-experience/text-input-managers.md) — Manages text entry into input fields via the system keyboard and provides capabilities to clear content. ([source](https://cdn.jsdelivr.net/gh/openatx/uiautomator2@master/README.md))
