在日常实施中,我们用控件对大部分的网页和客户端都能进行拾取操作。但是仍有一小部分的应用无法进行操作。这里我常用到 pyautogui 这个模块。下面做个分享。

Python 的 pyautogui 模块实现鼠标的自动移动以及键盘的自行输入. 该模块不是 Python 自带的, 因此执行以下命令进行安装

# pyautogui模块依赖image模块,没有image会报ImportError: No module named ‘PIL‘错误

pip install image

pip install pyautogui

官方文档介绍:https://pyautogui.readthedocs.io/en/latest/

import pyautogui

'''1.size(): 用于获取屏幕分辨率'''
print("电脑当前的分辨率:",pyautogui.size())
print(type(pyautogui.size())) '''2.moveTo(): 用于鼠标的移动 '''
pyautogui.moveTo(100,100,duration=1) '''3.moveRel(): 根据当前位置, 相对移动鼠标指针'''
pyautogui.moveRel(0, 300, duration=1) '''4.position(): 获取当前鼠标指针的位置'''
print("获取当前鼠标位置:",pyautogui.position()) ''' 5.click(): 用于控制鼠标点击和拖拽 '''
pyautogui.click(370, 120)
doubleClick() 双击
rightClick() 右击 """
6.有两个与鼠标拖拽操作相关的函数: dragTo 和 dragRel. 它们的行为与 moveTo 和 moveRel 类似,
区别在于拖拽操作在移动的过程中, 会保持鼠标左键被按下.
该功能可用于不同的场景, 比如移动对话框,或在 Windows 的画板程序中用铅笔工具自动绘图
"""
import pyautogui
import time
time.sleep(5) # 5秒种时间切换到画板程序 pyautogui.moveTo(200, 200, duration=1) # 鼠标移动到(200,200)的位置
pyautogui.dragRel(100, 0, duration=1) #相对移动
pyautogui.dragRel(0, 100, duration=1) #相对移动
pyautogui.dragRel(-100, 0, duration=1) #相对移动
pyautogui.dragRel(0, -100, duration=1) #相对移动 """ 7.scroll(): 滚屏函数接受像素数作为参数, 并用给定的像素数向上滚屏 """
pyautogui.scroll(200) #向上回滚
#对选中的窗口进行向上滚屏200个像素点.当值为负数时,向下移动 '''8. typewrite(): 用于自动键入字符串, 只需将要键入的字符串传递给函数作为参数即可 '''
pyautogui.click(1000,400)
pyautogui.typewrite("hello word!")
#假设文本区域位于屏幕 (100, 200) 的坐标位置, 那么这段代码将点击文本区域, 激活它, 并键入‘hello word! """ 9.传递键名: 可以向 typewrite() 函数传入分离的键名 """
pyautogui.typewrite(['a','left','ctrlleft'])
#这段代码等价于: 键入 "a", 然后敲击左方向键, 再敲击左 ctrl 键. """ 10.热键组合: hotkey() 可以模拟组合热键, 比如: ctrl-c, ctrl-a, ctrl-v 等 """
# 1.模拟ctrl-v,复制功能
pyautogui.hotkey('ctrlleft','v')
# 等价于
pyautogui.keyDown('ctrl')
pyautogui.keyDown("shift")
pyautogui.keyDown('esc')
pyautogui.keyUp('esc')
pyautogui.keyUp('shift')
pyautogui.keyUp('ctrl') """ 11.press() :键盘功能按键"""
pyautogui.press("enter") #键盘输入一个 entr
pyautogui.press("f1") # press the F1 key
pyautogui.press("left") #按左箭头键 """ 消息弹窗函数 """
#如果你需要消息弹窗,通过单击OK暂停程序,或者向用户显示一些信息,消息弹窗函数就会有类似JavaScript的功能:
pyautogui.alert('这个消息弹窗是文字+OK按钮') # 返回OK
pyautogui.confirm('这个消息单击OK') # 返回输入的字符串弹窗是文字+OK+Cancel按钮‘) # 返回OK 或 Cancel
pyautogui.prompt('这个消息弹窗是让用户输入字符串,单击OK') # 返回输入的字符串

  

pyautogui 模块学习的更多相关文章

  1. Day5 - Python基础5 常用模块学习

    Python 之路 Day5 - 常用模块学习   本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shel ...

  2. # nodejs模块学习: express 解析

    # nodejs模块学习: express 解析 nodejs 发展很快,从 npm 上面的包托管数量就可以看出来.不过从另一方面来看,也是反映了 nodejs 的基础不稳固,需要开发者创造大量的轮子 ...

  3. 【转】Python模块学习 - fnmatch & glob

    [转]Python模块学习 - fnmatch & glob 介绍 fnmatch 和 glob 模块都是用来做字符串匹配文件名的标准库. fnmatch模块 大部分情况下使用字符串匹配查找特 ...

  4. pythone函数基础(7)第三方模块学习

    一,time模块学习 import time # print(int(time.time()))#时间戳# res = time.strftime('%Y-%m-%d %H:%M:%S')#取当前格式 ...

  5. python中confIgparser模块学习

    python中configparser模块学习 ConfigParser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(section ...

  6. Python logging 模块学习

    logging example Level When it's used Numeric value DEBUG Detailed information, typically of interest ...

  7. python - argparse 模块学习

    python - argparse 模块学习 设置一个解析器 使用argparse的第一步就是创建一个解析器对象,并告诉它将会有些什么参数.那么当你的程序运行时,该解析器就可以用于处理命令行参数. 解 ...

  8. Python 日期时间处理模块学习笔记

    来自:标点符的<Python 日期时间处理模块学习笔记> Python的时间处理模块在日常的使用中用的不是非常的多,但是使用的时候基本上都是要查资料,还是有些麻烦的,梳理下,便于以后方便的 ...

  9. 审计系统---paramiko模块学习

    paramiko模块学习 [更多参考]http://www.cnblogs.com/wupeiqi/articles/4963027.html [paramiko的Demo实例]https://git ...

随机推荐

  1. 北航oo作业第二单元小结

    类的设计: 首先,我对我的思路进行整体的说明,由于我的三次作业,思路是继承的,所以做总体的说明 第一,   Main类,Main类自身并没有功能,他的功能只是构造需要的电梯线程和输入线程. 其中,第三 ...

  2. Day2 HTML基本标签元素

    Day2   HTML基本标签元素 HTML:  超文本标记语言(HyperText   Mark-up  Language ) 1.作用:写网页结构  2.HTML不区分大小写,建议小写   3.文 ...

  3. weexpack 创建项目, 打包Android 和 ios

    1: 首先确保 node.js版本大于6.0, 不然使用 weexpack 时会报错(部分使用es6语言,node版本太低不支持es6) 下面所有都是命令行执行的命令 2: 全局安装 weexpack ...

  4. Android使用文件管理器打开指定文件夹,浏览里面的内容

    Android下可以打开一些文件,带有.doc 等后缀的文件网上一般都有解释,这个写一个使用文件管理器打开指定文件夹的 private void openAssignFolder(String pat ...

  5. uvm_sqr_ifs——TLM1事务级建模方法(四)

    与uvm_tlm_if_base 一样,这个类也没有派生自任何类,定义了如下几个接口:get_next_item, try_next_item, item_done, get, peek, put, ...

  6. linux 命令——7 mv(转)

    mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 1.命令格式: mv [选项] 源文件或目 ...

  7. 还在用SELECT COUNT统计数据库表的行数?Out了

    在ABAP里我们如果想用代码获得一个数据库表里有多少条记录,常规做法是使用SELECT COUNT. 如果您使用的是HANA数据库,现在有一种新的办法可以达到同样的目的.HANA数据库里有一张名为m_ ...

  8. Codeforces Round #327 (Div. 2) C Median Smoothing(找规律)

    分析: 三个01组合只有八种情况: 000 s001 s010 0011 s100 s101 1110 s111 s 可以看出只有010,101是不稳定的.其他都是稳定的,且连续地出现了1或0,标记为 ...

  9. POJ 3421 X-factor Chains(构造)

    这条链依次乘一个因子.因为n<2^20,sqrt(n)分解因子,相同的因子相对顺序取一个. 组合公式计算一下就好. #include<cstdio> #include<iost ...

  10. 【HHHOJ】NOIP2018 模拟赛(二十四) 解题报告

    点此进入比赛 得分: \(100+60+100\)(挺好的,涨了一波\(Rating\)) 排名: \(Rank\ 1\) \(Rating\):\(+115\) \(T1\):[HHHOJ13]金( ...