Skip to main content
Loss of provenance

A previous release had provenance metadata, but this release does not. View details.

Visual Sonar 🔊

Python 3.8+ License: MIT Version OCR Tests

Automate WVD/Citrix remote desktop sessions using Computer Vision — no DOM access, no server agents, no licensing fees.

Visual Sonar "echolocates" form fields by pressing TAB and detecting visual focus changes. Works where Selenium and traditional RPA tools can't.


✨ Features

Feature Description
🎯 Visual Field Detection Detects fields by screen diff when focus changes
📊 Data-Driven Testing Run same test with multiple data sets (CSV/JSON)
🔍 OCR Text Extraction Extract text from screen (pytesseract/easyocr)
🖥️ WVD Simulator Test safely without real remote desktop
🔒 Secrets Scrubbing Passwords never appear in logs
📸 Step Screenshots Every action captured for debugging
⚡ DPI Aware Per-monitor scaling support

🚀 Quick Start

Option A: Install from PyPI (Recommended)

pip install visual-sonar

Then use:

visual-sonar map
visual-sonar run
visual-sonar --help

Option B: Install from Source

git clone https://github.com/godhiraj-code/wvdautomation.git
cd wvdautomation
pip install -e .

2. Map Your Form

python visual_sonar.py map

Name fields as name:type (types: text, click, toggle, dropdown, double_click)

3. Create Input

{
    "username": "jdoe@company.com",
    "password": "SecretPass123",
    "signin": true
}

4. Run

python visual_sonar.py run

📋 Commands

Command Description
map Interactive field mapping
run [file.json] Execute automation
list Show available test cases
batch <data.csv> Data-driven batch testing
extract screen OCR extract from full screen
extract region x y w h OCR extract from region
help Show full help

🧪 Testing Without Remote Desktop

Use the built-in simulator:

# Terminal 1 - Start simulator
python wvd_simulator.py

# Terminal 2 - Map and run
python visual_sonar.py map
python visual_sonar.py run

📊 Data-Driven Testing

Run same test with multiple credentials:

Create test_cases/users.csv:

username,password,signin
user1@co.com,pass1,true
user2@co.com,pass2,true

Run batch:

python visual_sonar.py batch test_cases/users.csv

🔍 OCR Text Extraction

# Full screen
python visual_sonar.py extract screen

# Specific region
python visual_sonar.py extract region 100 200 300 50

# Verify text exists (for assertions)
python visual_sonar.py extract verify 100 200 300 50 "Success"

Note: Requires pip install pytesseract + Tesseract-OCR


🛡️ Safety

  • Emergency Stop: Move mouse to TOP-LEFT corner
  • FailSafe: Always enabled by default
  • Secrets: Never logged, always scrubbed
  • Screenshots: Captured on every step

📁 Files

File Purpose Git
wvd_map.json Field coordinates ✅
input.json Your secrets ❌
test_cases/ Test data files ✅
*.png Debug screenshots ❌

🔧 Troubleshooting

Issue Solution
"No map file" Run python visual_sonar.py map first
"Screen Unstable" WVD connection laggy, wait and retry
Wrong coordinates Remap (resolution/DPI may have changed)
OCR not working Install Tesseract-OCR software

📖 Documentation


📜 License

MIT © Visual Sonar Team

Metadata

Release files for visual-sonar 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Loss of provenance

These files do not have provenance metadata, despite files in a prior release including this data.

We recommend further investigation before installing these files. View details.

Source distribution (sdist)

Source distribution for visual-sonar 1.0.1
File Size Uploaded Provenance
visual_sonar-1.0.1.tar.gz 20.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for visual-sonar 1.0.1
File Interpreter ABI Platform
visual_sonar-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 37.8 kB

Release files / visual_sonar-1.0.1.tar.gz

Loss of provenance

This file belongs to a release without provenance metadata, despite a prior release including this data.

We recommend further investigation before installing this file. View details.

Download URL visual_sonar-1.0.1.tar.gz
Size 20.0 kB
Tags Source
SHA-256 checksum
How to use checksums
695eac34bac7c41bb5f596046f33ec61ec70e383276a4e8da3b2a07c27c8e16d
BLAKE2b-256 checksum
How to use checksums
0fd1f18311f2aa289619464620e9a859fa1b742326a7141d975016ffb95cbc77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release files / visual_sonar-1.0.1-py3-none-any.whl

Loss of provenance

This file belongs to a release without provenance metadata, despite a prior release including this data.

We recommend further investigation before installing this file. View details.

Download URL visual_sonar-1.0.1-py3-none-any.whl
Size 17.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
92f340ddd28a590376861f7b611658a7cdd02ecbcd163510e068c80f3765eb22
BLAKE2b-256 checksum
How to use checksums
63f4b232d3c0846390427a18996c86aa96758c79697185f28cf08e0f1de8c2dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Security for visual-sonar 1.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Loss of provenance

A previous release of these files had provenance metadata, but this release does not.

While this could reflect a routine change by the project maintainers, it may also indicate that the release files have been compromised.

Release comparison

  • Removed 1.0.0 2 files With provenance
  • Added 1.0.1 2 files Without provenance

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files Loss of provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page