Skip to main content

UI hierarchy visualization tool, supporting Android, iOS, HarmonyOS NEXT.

Project description

ui-viewer

github actions pypi version python

UI hierarchy inspector, supporting Android, iOS, and HarmonyOS NEXT.

Its features include:

  • visualize the UI hierarchy via screenshot and tree structure.
  • view element properties
  • auto generate XPath or XPathLite
  • auto generate coordinate percentages.
  • and more…

This project is developed using FastAPI and Vue. It starts locally and displays UI hierarchy through web browser.

show

Installation

  • python3.8+
pip3 install -U uiviewer

Run

Run the following command on the terminal. (default port 8000)

uiviewer
# or
python3 -m uiviewer

INFO:     Started server process [46814]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     127.0.0.1:55080 - "GET / HTTP/1.1" 307 Temporary Redirect
INFO:     127.0.0.1:55080 - "GET /static/index.html HTTP/1.1" 200 OK
INFO:     127.0.0.1:55080 - "GET /static/css/style.css HTTP/1.1" 200 OK
INFO:     127.0.0.1:55080 - "GET /static/js/index.js HTTP/1.1" 200 OK
INFO:     127.0.0.1:55080 - "GET /static/js/api.js HTTP/1.1" 200 OK
INFO:     127.0.0.1:55082 - "GET /static/js/utils.js HTTP/1.1" 200 OK
INFO:     127.0.0.1:55082 - "GET /static/js/config.js HTTP/1.1" 200 OK
INFO:     127.0.0.1:55082 - "GET /version HTTP/1.1" 200 OK

And then open the browser to http://localhost:8000

You can also customize port to start the service.

uiviewer -p <PORT>
# or
python3 -m uiviewer -p <PORT>

Tips

  • If you are using a virtual environment, please make sure to activate it before running the command.

  • On iOS, please ensure that WDA is successfully started and wda port forwarding is successful in advance.

    • First, Use xcode or tidevice or go-ios to launch wda.
    tidevice xctest -B <wda_bundle_id>
    
    • Second, Use tidevice or iproxy to forward the wda port,and keep it running.
    tidevice relay 8100 8100
    
    • And then, To ensure the success of the browser to access http://localhost:8100/status, return like this:
    {
      "value": {
          "build": {
              "productBundleIdentifier": "com.facebook.WebDriverAgentRunner",
              "time": "Mar 25 2024 15:17:30"
          },
          ...
          "state": "success",
          "ready": true
      },
      "sessionId": null
    } 
    
    • Finally, Input the wdaUrl in the web page, such as http://localhost:8100
  • On iOS,WDA can easily freeze when dumping high UI hierarchy. You can reduce the maxDepth on the web page. The default is 30.

Preview

  • HarmonyOS harmony

  • Android android

  • iOS ios

Relevant

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uiviewer-1.1.3.tar.gz (410.0 kB view details)

Uploaded Source

Built Distribution

uiviewer-1.1.3-py3-none-any.whl (423.3 kB view details)

Uploaded Python 3

File details

Details for the file uiviewer-1.1.3.tar.gz.

File metadata

  • Download URL: uiviewer-1.1.3.tar.gz
  • Upload date:
  • Size: 410.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for uiviewer-1.1.3.tar.gz
Algorithm Hash digest
SHA256 6bf5d153f8755264998aecbbd9b48892ca0493dc46aa1d8e15b2f32b5a2fbb4b
MD5 b4328520f4ae81c2f176550f66e0e7d6
BLAKE2b-256 0dcdcbf89d0f0aa8c1f88754333672a90e58d8ffbc81c89ba6ae7c59c3b9febb

See more details on using hashes here.

File details

Details for the file uiviewer-1.1.3-py3-none-any.whl.

File metadata

  • Download URL: uiviewer-1.1.3-py3-none-any.whl
  • Upload date:
  • Size: 423.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for uiviewer-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f1be986ddd2f1e3aa3357d6ef457b7161b006134fbdfdc17cd77e1202efabc55
MD5 70df22acb429c18e209e7fa892a32fef
BLAKE2b-256 5d474fc31e31dbdd10ef7b9d474dafc0d56f030170e667a69db5675cd59981e3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page