pyvisauto - a vision-based automation tool
Project description
pyvisauto
pyvisauto is a Python visual automation tool. Inspired by Sikuli, pyvisauto provides Python-native easy-to-use abstractions for complex interactions with on-screen visual elements by wrapping OpenCV (specifically opencv-contrib-python-headless), pyautogui, pytesseract, and numpy.
Features include:
- OpenCV and numpy-driven image matching of on-screen elements
- TesseractOCR support
- Methods to find an image match (
find), find all matches (find_all), check if a match exists (exists), wait until an image match occurs (wait), and wait for an image match to disappear (wait_vanish) - Methods to click and hover over regions and matches (
clickandhover, respectively) with random x and y coordinates within the region - Sub-region and cached matching for faster performance
- Method to save screenshots of matches and regions to a file (
screenshot)
Requirements
pyvisauto has been tested on Python 3.7. The opencv-contrib-python-headless package limits availability to Python 2.7 and 3.4 ~ 3.7. While pyvisauto should be compatible with Python 3, Python 3.8 is currently not supported.
Installation and Usage
- Install OS-specific dependencies:
- Windows: No extra dependencies needed
- Linux:
python3-xlib - OSX:
pyobjc-coreandpyobjc, in that order
- Install pyvisauto using pip:
pip install pyvisauto - Import pyvisauto:
import pyvisauto - Read the Quick Start and API docs
Quick Start
-
Define a full-screen region and assign it to
r:r = pyvisauto.Region() -
Define a region with the upper-left corner at x: 50px and y: 100px, with a width of 500px and height of 300px and assign it to
r:r = pyvisauto.Region(50, 100, 500, 300) -
Find the image
asset1.pngin the defined region, with a similarity score of 0.9:match1 = r.find('asset1.png', 0.8) -
If there has been no visual changes in the defined region, subsequent
findactions can be expedited by passing incached=True:match2 = r.find('asset2.png', 0.9, cached=True) -
find_allandexistscan be used in a similar fashion asfind. -
Hover over a random point in the first returned match:
match1.hover() -
Click a random point in the second returned match:
match2.click() -
One can use
waitandvanishto wait for on-screen changes, detected by the presence or disappearance of an image on-screen, respectively:r.wait('wait_asset1.png', 30, 0.8)The above code will wait for
wait_asset1.pngin the previously defined regionr, with a minimum similarity score of 0.8, waiting a maximum of 30 seconds before throwing aFindFailedexception.vanish, on the other hand, throws aVanishFailedexception. Both exceptions are defined in thepyvisautomodule.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyvisauto-1.0.3.tar.gz.
File metadata
- Download URL: pyvisauto-1.0.3.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
758cad748263fcea48ab1fd6ae930c87c42ee3413a1a8a3361dac45b2c8280a0
|
|
| MD5 |
0b81042c64f83add09dac6a14f3684cf
|
|
| BLAKE2b-256 |
2ab40fc1639477847acf42408d22aa832bc9e573a5ce8fff35a15c1250c6a1bc
|
File details
Details for the file pyvisauto-1.0.3-py3-none-any.whl.
File metadata
- Download URL: pyvisauto-1.0.3-py3-none-any.whl
- Upload date:
- Size: 22.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
768bc48e6ae389e43535d1e7a7f503ab3e099b1b78f5d08cbab451bd7a66142c
|
|
| MD5 |
ea27d3c03e903c12525a56d4a60af034
|
|
| BLAKE2b-256 |
16e80b52443bc9e16166429b149f8d28f492e66838aa4bed4a1f4efbe4d69713
|