UI hierarchy visualization tool, supporting Android, iOS, HarmonyOS NEXT.
Project description
ui-viewer
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.
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
ortidevice
orgo-ios
to launch wda.
tidevice xctest -B <wda_bundle_id>
- Second, Use
tidevice
oriproxy
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 ashttp://localhost:8100
- First, Use
-
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
-
Android
-
iOS
Relevant
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file uiviewer-1.1.2.tar.gz
.
File metadata
- Download URL: uiviewer-1.1.2.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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30ba53b61936e49835917477d51a7814f7ce3069f6672b262ee1c8539ed6f11f |
|
MD5 | 3bc7bef32a88cc3aad139b6c7e002c41 |
|
BLAKE2b-256 | 8166e29eaf6eca7de1a7d53bf816cbddb3352067d94c2464d56ad7507c198cb1 |
File details
Details for the file uiviewer-1.1.2-py3-none-any.whl
.
File metadata
- Download URL: uiviewer-1.1.2-py3-none-any.whl
- Upload date:
- Size: 423.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 814c2c7c366f7227ca1c47e29e1c448dfefd6ab25346680fc5a6ad8da33a1f3f |
|
MD5 | 7bb8c952d3489e0d94e3d71a88176407 |
|
BLAKE2b-256 | 9f76d19dc49b6afa5205801923effd57174b127179d7e90aefb210cacaa9ef2d |