awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
google avatar

google/EarlGrey

0
View on GitHub↗
5,683 stars·734 forks·Objective-C·Apache-2.0·11 viewsgoogle.github.io/EarlGrey↗

EarlGrey

EarlGrey is an iOS UI automation test framework that enables writing and running automated tests simulating real user interactions. It provides a synchronized test execution engine that automatically waits for animations, network requests, and run-loop states to complete before performing test actions or assertions, producing stable and repeatable results across test runs.

The framework distinguishes itself through out-of-process interaction handling, managing system alerts and app switching during tests, and a pixel-level visibility checker that verifies UI elements are actually visible and interactable by comparing screenshots for pixel-level differences rather than just checking hierarchy presence. It also includes a remote method invocation bridge that allows test code to access application objects and state directly, and a screenshot-based element matching capability that identifies UI elements by capturing and comparing pixel data.

EarlGrey supports running tests from the terminal using standard build tools like xcodebuild, and provides capabilities for simulating taps and swipes through app-level touch events after confirming element visibility. The framework can be integrated with the standard iOS test runner for command-line execution.

Features

  • iOS UI Automation Tests - Provides a complete iOS UI automation test framework with synchronization, visibility checks, and system alert handling.
  • App Internal Queries - Accesses application objects and state directly from test code using remote method invocation.
  • Visibility Checkers - Verifies UI element visibility by comparing screenshots for pixel-level differences before interaction.
  • Visibility Verifications - Implements pixel-level screenshot comparison to verify UI element visibility before interaction.
  • Test-to-App Bridges - Provides a remote method invocation bridge for test code to access application objects and state directly.
  • Test Process Interaction Brokers - Manages system alerts and app switching during automated iOS UI tests from an external process.
  • Pixel-Level Visibility Matchers - Checks element visibility using pixel-level analysis rather than just hierarchy presence.
  • Pixel-Level Visibility Verifications - Verifies UI element visibility by comparing screenshots for pixel-level differences before performing actions.
  • System Alert Handlers - Provides out-of-process system alert interception and dismissal during iOS UI test execution.
  • App Idle Synchronizations - Waits for animations, network requests, and queues to finish before each test action for stable results.
  • iOS UI Automation Frameworks - Ships a complete iOS UI automation test framework with synchronization, visibility checks, and system alert handling.
  • User Interaction Simulation - Simulates realistic taps and swipes via app-level touch events after confirming element visibility.
  • UI Stability Waits - Waits for animations, network requests, and queues to finish before each interaction for consistent results.
  • System UI Cross-App Interactions - Performs out-of-process actions like handling system alerts and switching between apps during tests.
  • Synchronization Engines - Automatically waits for animations, network requests, and queues before performing test actions.
  • Test Idling Resources - Monitors animation, network, and run-loop states to defer test actions until the application becomes idle.
  • Remote App State Queries - Provides an interface to access application objects and state from test code using remote method invocation.
  • App Idle Waiters - Waits for the app to become idle before performing actions or assertions by tracking UI, network, and animation states.
  • Out-of-Process Touch Simulations - Ships out-of-process touch injection that simulates taps and swipes from the test runner process.
  • Screenshot-Based Element Matchers - Identifies UI elements by capturing and comparing pixel data instead of relying on accessibility identifiers.
  • Testing and Automation - iOS UI automation test framework by Google.
  • Testing Frameworks - iOS UI automation framework.

Star history

Star history chart for google/earlgreyStar history chart for google/earlgrey

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does google/earlgrey do?

EarlGrey is an iOS UI automation test framework that enables writing and running automated tests simulating real user interactions. It provides a synchronized test execution engine that automatically waits for animations, network requests, and run-loop states to complete before performing test actions or assertions, producing stable and repeatable results across test runs.

What are the main features of google/earlgrey?

The main features of google/earlgrey are: iOS UI Automation Tests, App Internal Queries, Visibility Checkers, Visibility Verifications, Test-to-App Bridges, Test Process Interaction Brokers, Pixel-Level Visibility Matchers, Pixel-Level Visibility Verifications.

Which projects share features with google/earlgrey?

Projects with overlapping indexed features include: kif-framework/kif — KIF is a functional testing framework and UI automation tool for iOS. It enables the simulation of user interactions… facebook/webdriveragent — WebDriverAgent is an on-device control agent and automation server that implements the WebDriver protocol for iOS… mobile-dev-inc/maestro — Maestro is a declarative mobile and web UI automation framework designed for end-to-end testing. It operates by… kentcdodds/react-testing-library — This project is a component testing framework and utility designed for testing React components. It functions as a DOM… angular/protractor — Protractor is a WebDriver-based end-to-end testing framework and browser automation tool. It serves as a frontend… garris/backstopjs — BackstopJS is an automated screenshot testing framework and visual regression testing tool designed to identify…

Projects sharing features with EarlGrey

These projects share indexed features with EarlGrey. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • kif-framework/kifkif-framework avatar

    kif-framework/KIF

    6,243View on GitHub↗

    KIF is a functional testing framework and UI automation tool for iOS. It enables the simulation of user interactions and the verification of application states by driving interface components through their defined accessibility attributes. The framework utilizes an actor-pattern action wrapper to group reusable interaction sequences and allows the definition of custom, high-level test steps through a method-extension action library. It performs in-process interface driving, interacting with the application directly within the same process to execute actions and validate view states. The tool

    Objective-C
    View on GitHub↗6,243
  • facebook/webdriveragentfacebook avatar

    facebook/WebDriverAgent

    4,260View on GitHub↗

    WebDriverAgent is an on-device control agent and automation server that implements the WebDriver protocol for iOS devices. It serves as a bridge that enables the remote control of applications and the operating system on physical iOS devices and simulators for automated testing. The project provides a UI testing framework capable of interacting with on-screen elements, capturing screenshots, and simulating user gestures. It translates remote commands into native system calls to interact with the iOS accessibility hierarchy. The server covers a broad range of device orchestration and UI autom

    Objective-C
    View on GitHub↗4,260
  • mobile-dev-inc/maestromobile-dev-inc avatar

    mobile-dev-inc/Maestro

    10,788View on GitHub↗

    Maestro is a declarative mobile and web UI automation framework designed for end-to-end testing. It operates by querying the native accessibility tree of an application, allowing for black-box testing without requiring source code instrumentation or platform-specific dependencies. The framework distinguishes itself through a unified command syntax that abstracts interactions across Android, iOS, and web environments. It features a dynamic synchronization engine that automatically pauses test execution to account for non-deterministic animations and network-dependent content loading, ensuring

    Kotlinandroidblackbox-testingios
    View on GitHub↗10,788
  • angular/protractorangular avatar

    angular/protractor

    8,694View on GitHub↗

    Protractor is a WebDriver-based end-to-end testing framework and browser automation tool. It serves as a frontend integration test suite used to verify web application flows by simulating user behavior and executing JavaScript within a browser. The framework is specifically designed for testing Angular applications, providing specialized locators and synchronization tools that align with the framework lifecycle. It distinguishes itself through automatic test step synchronization, which pauses execution until pending page tasks are completed to ensure stable browser execution. The tool covers

    JavaScriptangularend-to-endjavascript
    View on GitHub↗8,694
Compare all 30 related projects→