前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pyautogui之locateOnScreen图片输出坐标

pyautogui之locateOnScreen图片输出坐标

作者头像
用户6367961
发布2020-03-23 16:22:44
7.3K0
发布2020-03-23 16:22:44
举报
文章被收录于专栏:自学测试之道

最近在做PC端应用程序自动化测试,由于程序是C++和VB结合的,使用工具无法像做APP自动化那样实现元素定位,且有些页面无法获取元素,故无意中发现了Python一个神奇的库:pyautogui。使用pyautogui可实现对页面图片坐标定位,这样就解决了当一个页面存在多个元素且无法或者元素坐标的问题。

一、环境准备

1、安装并导入pyautogui库

pip install pyautogui

代码语言:javascript
复制
import pyautogui as auto

2、准备需要识别的图片

二、解决思路

通过已存在的图片,在程序当中找到该图片的坐标,为后续提供坐标点操作

三、实现步骤

1、这里应用程序图就不贴出来了(你懂得),图片在项目中的路径

2、实现代码

代码语言:javascript
复制
from conf.config import *
import pyautogui as auto
from time import sleep
from pymouse import PyMouse
from pykeyboard import PyKeyboard
# 识别图片并转换为x,y坐标,定位到name
def im_dis():
    try:
        number1_location = auto.locateOnScreen('F:/HIS/Script/wm/img/2.png')  # 传入按钮的图片
        print(number1_location)  # 返回屏幕所在位置
        x, y = auto.center(number1_location)  # 转化为 x,y坐标
        print(x, y)
        return x, y
    except TypeError:
        print("A TypeError has been occured!")

#  分别住院床位
def im_cw():
    number1_location = auto.locateOnScreen('F:/HIS/Script/wm/img/1.png')  # 传入按钮的图片
    print(number1_location)  # 返回屏幕所在位置
    x, y = auto.center(number1_location)  # 转化为 x,y坐标
    return x,y

if __name__ == "__main__":
    driver = win_start()
    sleep(5)
    m = PyMouse()
    k = PyKeyboard()
    m.click(435, 427)  # 坐标定位到 门诊管理系统
    sleep(2)
    # x, y 是坐标位置  button  1 表示左键,2 表示点击右键  n点击次数,默认是1次, 2表示双击
    m.click(265, 568, 1, 2)  # 定位到  门诊收费
    sleep(8)
    m.click(48, 25)  # 定位患者管理
    sleep(1)
    m.click(83, 76)  # 定位病区一览表
    sleep(10)
    m.click(646, 622)
    x, y = im_cw()
    print(x, y)
    sleep(3)

3、输出结果

这样就实现了图片的坐标问题,为后续开展自动化测试工作提供了有力支撑。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 自学测试之道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档