pywinauto+lackey+selenium自动化操作综合案例(PC+浏览器)

本文主要用pywinauto+lackey+selenium
其中selenium为比较成熟完善的,而lackey可截图自动识别像素区域
根据不同的场景还可以选择pyautogui,Playwright(录制操作自动生成代码)等等,各有优缺

一,效果演示

1.PC自动化应用演示(pywinauto+lackey)

2.浏览器自动化演示(lackey+selenium)

演示采用了降帧降分辨率来防止泄露部分信息,请理解

 二.应用介绍

演示一:将表已Navicat自动导入到mysql数据库

 导入相关库,设置应用程序所在电脑的路径,使用库函数pywinauto.Application().start(path)来打开程序

import pywinauto
import time
import lackey
path = r'G:\Navicat\Navicat Premium 15\Navicat Premium 15\navicat.exe'
app = pywinauto.Application().start(path)

将截取的要操作的图片作为目标信息,如

对于应用程序启动是有时间的,如果时间设置的不恰当程序会找不到目标意外终止,所以使用time.sleep()设置休眠时间

lackey.Screen(0)来获取当前屏幕,然后都是在此基础上操作

time.sleep(5)
r = lackey.Screen(0)
r.doubleClick('E:/py/photo/mysql/patience.png')
time.sleep(0.9)

doubleClick为双击左键,rightClick为右键,click为单击左键,其中括号内为引用截图的路径

注意区分大小写,目前我认为比较好用的为这些,其它可参考lackey官方文档

lackey classes — Lackey 0.7.3 documentation

r.rightClick('E:/py/photo/mysql/table.png')
time.sleep(0.3)
r.click("E:/py/photo/mysql/import_table.png")
time.sleep(0.3)

可以结合try except等功能使用

 演示二.应用浏览器,以lackey代替复杂的XPATH定位

selenium内容较多,这里只进行简单介绍:

selenium --基于浏览器的自动化模块,用于web应用的测试工具,selenium测试是直接运行在浏览器中就像真的用户在操作一样,其中支持的浏览器有GOOGLE,Edge
这个模块的主要功能:
1.测试系统的兼容性(测试应用程序能否很好的工作在不同的浏览器和操作系统上)
2.测试系统功能
3.编写基于浏览器的自动化操作代码

1.发起请求get
2.标签定位: find系列方法
3.前进forword 后退back
4.关闭浏览器 quit()
5.page_source 获取网页源代码

selenium使用流程
1.安装selenium:pip install selenium
2.安装一个浏览器驱动程序(要求和你简单浏览器版本相匹配)
下载地址
https://chromedriver.storage.googleapis.com/index.html

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from time import sleep
from selenium.webdriver.common.by import By
import lackey

# 实例化浏览器驱动对象
s = Service('./chromedriver.exe')
driver = webdriver.Chrome(service=s)
driver.get('http://这里填写要用的网址')
# 获取当前页面的源码数据
data = driver.page_source
print(data)

# 定位到搜索框
# By.XPATH:定位多个类标签的值得位置,后面往往以//开头,属性采用@表示
inputs = driver.find_element(By.XPATH, '//*[@type="text"]')
# 往文本框中输入信息
inputs.send_keys('键入键盘信息,此处为账号')
sleep(1)
inputs = driver.find_element(By.XPATH, '//*[@type="password"]')
inputs.send_keys('键入键盘信息,此处为密码')
sleep(1)
# 定位到按钮
button = driver.find_element(By.XPATH, '//*[@class="vetui_button"]')
sleep(1.5)
# 点击按钮
button.click()
r = lackey.Screen(0)
# r.click('E:/py/photo/RC/login_y.png')


def login_check():
    try:
        r.click('E:/py/photo/RC/login_y.png')
        alert = '检测到已登录,已强制登录\n'
        print(alert)
    except Exception as e:
        alert = str(e)
        print(alert)


sleep(1)
login_check()

猜你喜欢

转载自blog.csdn.net/qq_53521409/article/details/127495895