想必大家想全自动干某一件事情,或者以前我教的PyAutoGUI模块还不会用,赶紧三一下。
没看过往期文章《PyAutoGUI模块很全详解》的一定要看一下再看这篇。同时那一篇的问题我已经修复了。
发现有些人还不会实操,这里写一个全自动登录幕布给大家示范一下。
注意:这个代码并不完善,实际使用时如果你的程序是写给客户的,一定要加上大量判断和图片检测。例如检测程序进程是否存在、是否有弹窗弹出(特别是流氓软件多的电脑)、屏幕分辨率、是否已经登录、窗口是否存在等等,如果不加,很可能会出现很严重的问题。
代码:
import pyautogui # 用于GUI自动化
import logging # 用于记录日志
import subprocess # 用于打开应用程
import time # 用于等待,虽然PyAutoGUI模块也可以,但个人已经习惯。
""" 注意!在实验脚本之前请先退出登录并关闭幕布,如果有能力的话可以加上进程检测哦,因为只是示范,就不写了。 """
pyautogui.FAILSAFE = True # 强烈建议为True,虽然为False可以防止鼠标移动到四个角落之一就报异常,但是调试阶段一定为True。
logging.basicConfig(filename="D:\\YFY\\LogFiles\\ProgramLog.log",level=logging.CRITICAL, format="%(asctime)s - %(levelname)s - %(message)s")
# 设置日志格式和日志文件路径,别忘了修改路径。
logging.info("Program start.")
subprocess.Popen("C:\\Program Files (x86)\\Mubu\\幕布.exe") # 打开程序,别忘了改路径。
time.sleep(3) # 等待打开
# 因为程序窗口默认在屏幕中央,定义一个数组来记录xy。
middle = [pyautogui.size()[0]/2,pyautogui.size()[1]/2]
pyautogui.click(middle[0]+150,middle[1]+10) # 切换到密码登录
time.sleep(0.5)
pyautogui.click(middle[0]-150,middle[1]-300) # 点击手机号输入框
time.sleep(1)
pyautogui.write("***********",0.2) # 输入手机号
time.sleep(1)
pyautogui.click(middle[0]-150,middle[1]-210) # 点击密码输入框
time.sleep(1)
pyautogui.write("**********",0.2) # 输入密码
time.sleep(1)
pyautogui.click(middle[0],middle[1]-75) # 点击登录
time.sleep(2)
logging.debug("Sign in end.")
# 登录成功。
# 最大化窗口方便操作。
fw = pyautogui.getWindowsWithTitle('我的文档 - 幕布') # 返回所有标题栏中包含字符串'我的文档 - 幕布'的可见窗口的window对象的列表
fw.maximize() # 最大化
logging.info("Program End.")