|
|
|
Metadata-Version: 2.1
|
|
|
|
Name: PyAutoGUI
|
|
|
|
Version: 0.9.44
|
|
|
|
Summary: A cross-platform module for GUI automation for human beings. Control the keyboard and mouse from a Python script.
|
|
|
|
Home-page: https://github.com/asweigart/pyautogui
|
|
|
|
Author: Al Sweigart
|
|
|
|
Author-email: al@inventwithpython.com
|
|
|
|
License: BSD
|
|
|
|
Keywords: gui automation test testing keyboard mouse cursor click press keystroke control
|
|
|
|
Platform: UNKNOWN
|
|
|
|
Classifier: Development Status :: 4 - Beta
|
|
|
|
Classifier: Environment :: Win32 (MS Windows)
|
|
|
|
Classifier: Environment :: X11 Applications
|
|
|
|
Classifier: Environment :: MacOS X
|
|
|
|
Classifier: Intended Audience :: Developers
|
|
|
|
Classifier: License :: OSI Approved :: BSD License
|
|
|
|
Classifier: Operating System :: OS Independent
|
|
|
|
Classifier: Programming Language :: Python
|
|
|
|
Classifier: Programming Language :: Python :: 2
|
|
|
|
Classifier: Programming Language :: Python :: 2.5
|
|
|
|
Classifier: Programming Language :: Python :: 2.6
|
|
|
|
Classifier: Programming Language :: Python :: 2.7
|
|
|
|
Classifier: Programming Language :: Python :: 3
|
|
|
|
Classifier: Programming Language :: Python :: 3.1
|
|
|
|
Classifier: Programming Language :: Python :: 3.2
|
|
|
|
Classifier: Programming Language :: Python :: 3.3
|
|
|
|
Classifier: Programming Language :: Python :: 3.4
|
|
|
|
Description-Content-Type: text/markdown
|
|
|
|
Requires-Dist: pymsgbox
|
|
|
|
Requires-Dist: PyTweening (>=1.0.1)
|
|
|
|
Requires-Dist: Pillow
|
|
|
|
Requires-Dist: pyscreeze (>=0.1.21)
|
|
|
|
Requires-Dist: pygetwindow (>=0.0.5)
|
|
|
|
|
|
|
|
PyAutoGUI
|
|
|
|
=========
|
|
|
|
|
|
|
|
PyAutoGUI is a cross-platform GUI automation Python module for human beings. Used to programmatically control the mouse & keyboard.
|
|
|
|
|
|
|
|
`pip install pyautogui`
|
|
|
|
|
|
|
|
Full documentation available at https://pyautogui.readthedocs.org
|
|
|
|
|
|
|
|
Simplified Chinese documentation available at https://muxuezi.github.io/posts/doc-pyautogui.html
|
|
|
|
|
|
|
|
Source code available at https://github.com/asweigart/pyautogui
|
|
|
|
|
|
|
|
Dependencies
|
|
|
|
============
|
|
|
|
|
|
|
|
PyAutoGUI supports Python 2 and 3. If you are installing PyAutoGUI from PyPI using pip:
|
|
|
|
|
|
|
|
Windows has no dependencies. The Win32 extensions do not need to be installed.
|
|
|
|
|
|
|
|
OS X needs the pyobjc-core and pyobjc module installed (in that order).
|
|
|
|
|
|
|
|
Linux needs the python3-xlib (or python-xlib for Python 2) module installed.
|
|
|
|
|
|
|
|
Pillow needs to be installed, and on Linux you may need to install additional libraries to make sure Pillow's PNG/JPEG works correctly. See:
|
|
|
|
|
|
|
|
https://stackoverflow.com/questions/7648200/pip-install-pil-e-tickets-1-no-jpeg-png-support
|
|
|
|
|
|
|
|
http://ubuntuforums.org/showthread.php?t=1751455
|
|
|
|
|
|
|
|
If you want to do development and contribute to PyAutoGUI, you will need to install these modules from PyPI:
|
|
|
|
|
|
|
|
* pyscreeze
|
|
|
|
* pymsgbox
|
|
|
|
* pytweening
|
|
|
|
|
|
|
|
Example Usage
|
|
|
|
=============
|
|
|
|
|
|
|
|
Keyboard and Mouse Control
|
|
|
|
--------------------------
|
|
|
|
```python
|
|
|
|
>>> import pyautogui
|
|
|
|
>>> screenWidth, screenHeight = pyautogui.size()
|
|
|
|
>>> currentMouseX, currentMouseY = pyautogui.position()
|
|
|
|
>>> pyautogui.moveTo(100, 150)
|
|
|
|
>>> pyautogui.click()
|
|
|
|
>>> pyautogui.moveRel(None, 10) # move mouse 10 pixels down
|
|
|
|
>>> pyautogui.doubleClick()
|
|
|
|
>>> pyautogui.moveTo(500, 500, duration=2, tween=pyautogui.tweens.easeInOutQuad) # use tweening/easing function to move mouse over 2 seconds.
|
|
|
|
>>> pyautogui.typewrite('Hello world!', interval=0.25) # type with quarter-second pause in between each key
|
|
|
|
>>> pyautogui.press('esc')
|
|
|
|
>>> pyautogui.keyDown('shift')
|
|
|
|
>>> pyautogui.typewrite(['left', 'left', 'left', 'left', 'left', 'left'])
|
|
|
|
>>> pyautogui.keyUp('shift')
|
|
|
|
>>> pyautogui.hotkey('ctrl', 'c')
|
|
|
|
```
|
|
|
|
|
|
|
|
Display Message Boxes
|
|
|
|
---------------------
|
|
|
|
```python
|
|
|
|
>>> import pyautogui
|
|
|
|
>>> pyautogui.alert('This is an alert box.')
|
|
|
|
'OK'
|
|
|
|
>>> pyautogui.confirm('Shall I proceed?')
|
|
|
|
'Cancel'
|
|
|
|
>>> pyautogui.confirm('Enter option.', buttons=['A', 'B', 'C'])
|
|
|
|
'B'
|
|
|
|
>>> pyautogui.prompt('What is your name?')
|
|
|
|
'Al'
|
|
|
|
>>> pyautogui.password('Enter password (text will be hidden)')
|
|
|
|
'swordfish'
|
|
|
|
```
|
|
|
|
Screenshot Functions
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
(PyAutoGUI uses Pillow for image-related features.)
|
|
|
|
```python
|
|
|
|
>>> import pyautogui
|
|
|
|
>>> im1 = pyautogui.screenshot()
|
|
|
|
>>> im1.save('my_screenshot.png')
|
|
|
|
>>> im2 = pyautogui.screenshot('my_screenshot2.png')
|
|
|
|
```
|
|
|
|
You can also locate where an image is on the screen:
|
|
|
|
```python
|
|
|
|
>>> import pyautogui
|
|
|
|
>>> button7location = pyautogui.locateOnScreen('button.png') # returns (left, top, width, height) of matching region
|
|
|
|
>>> button7location
|
|
|
|
(1416, 562, 50, 41)
|
|
|
|
>>> buttonx, buttony = pyautogui.center(button7location)
|
|
|
|
>>> buttonx, buttony
|
|
|
|
(1441, 582)
|
|
|
|
>>> pyautogui.click(buttonx, buttony) # clicks the center of where the button was found
|
|
|
|
```
|
|
|
|
The locateCenterOnScreen() function returns the center of this match region:
|
|
|
|
```python
|
|
|
|
>>> import pyautogui
|
|
|
|
>>> buttonx, buttony = pyautogui.locateCenterOnScreen('button.png') # returns (x, y) of matching region
|
|
|
|
>>> buttonx, buttony
|
|
|
|
(1441, 582)
|
|
|
|
>>> pyautogui.click(buttonx, buttony) # clicks the center of where the button was found
|
|
|
|
```
|
|
|
|
|
|
|
|
|