1、安装 pyautogui 模块

  • pip install pyautogui

2、pyautogui 模块相关操作

  • 鼠标操作
# 获取屏幕宽和高
w,h = pyautogui.size() # 在坐标 (1136,706) 位置处使用鼠标左键;默认从鼠标当前坐标位置;button 默认为 "left",有三个可选值,分别为 "left","middle","right"
pyautogui.click(1136,706,button="left")
pyautogui.leftClick(x,y) # 在 (300,400) 坐标处左键双击
pyautogui.click(300, 400,clicks=2, button='left',interval=0.25)
# 在 (x,y) 坐标处双击操作;button 默认为 "left",有三个可选值,分别为 "left","middle","right"
pyautogui.doubleClick(x,y,button="left",duration=0.25) # 在坐标 (1136,706) 位置处使用鼠标右键
pyautogui.click(1136,706,button="right")
pyautogui.rightClick(x,y) # 在坐标 (x,y) 位置处使用鼠标中键
pyautogui.middleClick(x,y) # 按下某个键
pyautogui.mouseDown() # 鼠标拖动到坐标 (1566,706) 位置处
pyautogui.moveTo(1566,706,duration=0.2) # 松开某个键
pyautogui.mouseUp()
  • 滚动条操作
# 滚动条操作,它只接受一个整数,值为正则往上滚,值为负则往下滚
pyautogui.scroll(-200)
pyautogui.scroll(200)
  • 输入操作
# 选择输入框
pyautogui.click(624,391) # 往输入框输入内容
pyautogui.typewrite("")
  • 键盘操作
# 删除一个字符
pyautogui.typewrite(["backspace"]) # 执行 enter 回车操作
pyautogui.typewrite(["enter"]) # 先在当前位置光标向左一个字符,接着删除一个字符,再输入 a,再执行 enter 操作;延时 2 秒
pyautogui.typewrite(["left","backspace","a","enter"],"")

"enter"(或 "return" 或 "\n")

回车

"esc"

ESC键

"shiftleft", "shiftright"

左右SHIFT键

"altleft", "altright"

左右ALT键

"ctrlleft", "ctrlright"

左右CTRL键

"tab" ("\t")

TAB键

"backspace", "delete"

BACKSPACE 、DELETE键

"pageup", "pagedown"

PAGE UP 和 PAGE DOWN键

"home", "end"

HOME 和 END键

"up", "down", "left", "right"

箭头键

"f1", "f2", "f3"….

F1…….F12键

"volumemute", "volumedown", "volumeup"

有些键盘没有

"pause"

PAUSE键

"capslock", "numlock", "scrolllock"

CAPS LOCK, NUM LOCK, 和 SCROLLLOCK 键

"insert"

INS或INSERT键

"printscreen"

PRTSC 或 PRINT SCREEN键

"winleft", "winright"

Win键

"command"

Mac OS X command键

  • 组合键 / 热键操作
#使用组合键
# alt + a 键进行组合使用
pyautogui.keyDown('alt')
pyautogui.press('a')
pyautogui.keyUp('alt')
# 使用热键
# 调起 qq
pyautogui.hotkey("ctrl","alt","z") #调起微信
pyautogui.hotkey("alt","d")

3、操作实例

  • 处理验证滑块

import pyautogui
from selenium import webdriver
import time
dr = webdriver.Chrome()
dr.get("https://shopcs.yunyoute.com/login")
dr.maximize_window()
dr.implicitly_wait(10)
time.sleep(2)
pyautogui.click(1136,706,button="left") # 在坐标(1136,706)位置处进行鼠标左键
pyautogui.mouseDown() # 按下鼠标键
pyautogui.moveTo(1566,706,duration=0.2) # 鼠标拖动到坐标(1566,706)位置处
pyautogui.mouseUp() # 松开鼠标
  • 将滑动滑块方法封装成功公共方法
"""
文件 Left_slide.py
"""
import pyautogui def left():
w,h = pyautogui.size() # 获取屏幕宽 w 和高 h
x1 = w * 0.59
x2 = w * 0.81
y1 = h * 0.65
pyautogui.click(x1,y1,button="left") # 在坐标(1136,706)位置处进行鼠标左键
pyautogui.mouseDown() # 按下鼠标键
pyautogui.moveTo(x2,y1,duration=0.2) # 鼠标拖动到坐标(1566,706)位置处
pyautogui.mouseUp() # 松开鼠标 """
文件 case.py
"""
from selenium import webdriver
from public.Left_slide import left
import time
dr = webdriver.Chrome()
dr.get("https://shopcs.yunyoute.com/login")
dr.maximize_window()
dr.implicitly_wait(10)
time.sleep(2)
left() # 调用左滑方法

Python(Pyautogui 模块)的更多相关文章

  1. pyautogui 模块学习

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

  2. 浅谈pyautogui模块

    pyautogui模块 PyAutoGUI--让所有GUI都自动化 安装代码: pip install pyautogui 目的 PyAutoGUI是一个纯Python的GUI自动化工具,其目的是可以 ...

  3. Python标准模块--threading

    1 模块简介 threading模块在Python1.5.2中首次引入,是低级thread模块的一个增强版.threading模块让线程使用起来更加容易,允许程序同一时间运行多个操作. 不过请注意,P ...

  4. Python的模块引用和查找路径

    模块间相互独立相互引用是任何一种编程语言的基础能力.对于“模块”这个词在各种编程语言中或许是不同的,但我们可以简单认为一个程序文件是一个模块,文件里包含了类或者方法的定义.对于编译型的语言,比如C#中 ...

  5. Python Logging模块的简单使用

    前言 日志是非常重要的,最近有接触到这个,所以系统的看一下Python这个模块的用法.本文即为Logging模块的用法简介,主要参考文章为Python官方文档,链接见参考列表. 另外,Python的H ...

  6. Python标准模块--logging

    1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...

  7. python基础-模块

    一.模块介绍                                                                                              ...

  8. python 安装模块

    python安装模块的方法很多,在此仅介绍一种,不需要安装其他附带的pip等,python安装完之后,配置环境变量,我由于中英文分号原因,环境变量始终没能配置成功汗. 1:下载模块的压缩文件解压到任意 ...

  9. python Queue模块

    先看一个很简单的例子 #coding:utf8 import Queue #queue是队列的意思 q=Queue.Queue(maxsize=10) #创建一个queue对象 for i in ra ...

随机推荐

  1. docker-compose 部分错误

    Get https://hub.17kxkx.com/v2/: dial tcp 39.106.209.67:443: connect: connection refused vim /etc/doc ...

  2. Array(数组)对象-->join() 方法

    1.定义和用法 join() 方法把数组中的所有元素用指定的参数作为分隔符拼接成一个字符串. 语法: array.join(separator) 举例: var arr = [1,2,3,4,5]; ...

  3. 支持向量机SVM推导

    样本(\(x_{i}\),\(y_{i}\))个数为\(m\): \[\{x_{1},x_{2},x_{3}...x_{m}\} \] \[\{y_{1},y_{2},y_{3}...y_{m}\} ...

  4. docker深入学习

    docker深入学习 一.容器的介绍和容器的发展史 为什么要学习容器? 在openstack之后,目前互联网最火热的技术莫过于docker容器了,早在2015年,京东技术备战双11就是使用了10万+D ...

  5. AJ学IOS 之微博项目实战(5)微博自定义搜索框searchBar

    AJ分享,必须精品 一:效果 用UITextField简单定义一个搜索框 二:调用: 调用的代码,很简单,直接init就可以,以后加功能自己添加就行了. - (void)viewDidLoad { [ ...

  6. linux 下强大的 JSON 解析命令 jq

    介绍 jq is like sed for JSON data - you can use it to slice and filter and map and transform structure ...

  7. 上班无聊,自己用python做个小游戏来打发时间

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取t.cn ...

  8. 【jmeter】JDBC请求循环调用的问题

    今天使用jdbc请求从数据库取数据,多次请求使用了循环控制器,但是结果第一个jdbc请求返回值正确,第二次请求返回值为空. 1.从其他博客中得知,需要在jdbc connection configur ...

  9. ORA-0245

    经常有客户报错ORA-0245 1.11.2 rac环境, rman存在snap控制文件路径,默认是文件系统[非共享,导致备份控制文件报错] 解决方法:将snap路径配置到ASM磁盘组共享路径[nfs ...

  10. 人体和电脑的关系——鸟哥的LINUX私房菜基础学习篇读书笔记

    CUP=脑袋: 每个人会做的事情都不一样(指令集的差异),但主要都是通过脑袋来判断与控制身体各部分的行动 内存=脑袋中存放正在思考的数据区块: 在实际活动过程中,我们的脑袋需要有外界刺激的数据(例如光 ...