前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pywinauto之Windows UI自动化3

Pywinauto之Windows UI自动化3

作者头像
用户6367961
发布2019-09-29 14:24:43
2.8K0
发布2019-09-29 14:24:43
举报
文章被收录于专栏:自学测试之道自学测试之道

上篇说明了如何打开PC端应用程序及控一些常用控件,接下来将继续完成后续控件操作

一、指定文件路径

代码语言:javascript
复制
"""点击窗口左上角Load packet"""
load_packet_window = window.child_window(title="",auto_id="59392", control_type="ToolBar")
load_packet = load_packet_window.child_window(title="Load packet", control_type="Button")
load_packet.click()

"""定位打开窗口,选择输入文件名(这里暂把文件路径固定,后续可做参数化文件路径)"""
open_file = window.child_window(title="打开",control_type="Window")
open_file.print_control_identifiers()
file_edit_path = open_file.child_window(title="文件名(N):", auto_id="1148", control_type="Edit")
file_edit_path.set_text(r"\\10.0.3.206\share_nxos\ROM\Debug\MS16\GP-F1\V1.1.1_2019.07.08_15.01.19\GP-F1_ms16_V1.1.1_pac\GP-F1_ms16_V1.1.1.pac")

"""点击打开按钮"""
file_open = window.child_window(title="打开(O)", auto_id="1", control_type="Button")
file_open.click()
time.sleep(2)

二、获取进度条状态

后续再完善该方法

三、设置等待时长

1、使用time.sleep()

代码语言:javascript
复制
time.sleep(3)

2、查询等待,即循环判断是否有弹窗,若存在,则退出循环。

代码语言:javascript
复制
while(True):
    if app.window(title="否(N)", auto_id="7", control_type="Button").exists():
        break
app['否(N)'].Ok.click()

3、查询等待法。查询有个缺点就是如果一直没出现,就会一直等待。所以我们最好设置一个等待时间限。

代码语言:javascript
复制
app.window(title="否(N)", auto_id="7", control_type="Button").Wait('enabled',timeout=300)
app['否(N)'].Ok.click()

四、全部代码

最后汇总下整体代码

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File Name: python_PC.py
# @Time    : 2019/7/26
# @Author  : zhong
# @Blog    : https://www.jianshu.com/search?q=keitwo&page=1&type=note
# @QQ交流  : 3227456102

from pywinauto import Application
import time

app = Application(backend="uia").start(r"D:\tools\zhanxunpingtai\UPGRADEDOWNLOAD_R21.0.0001\UPGRADEDOWNLOAD_R21.0.0001\Bin\UpgradeDownload.exe")

"""判断是否有弹框"""
while not app.top_window():
    time.sleep(3)

"""检查指定对话框的名称"""
window = app.window(title="UpgradeDownload - R21.0.0001")
window.print_control_identifiers()  # 打印'标识符',将控件及其后代的标识符打印到深度深度
time.sleep(2)

"""是否加载上一次路径控件信息,选择否"""
load_window = window.child_window(title="否(N)", auto_id="7", control_type="Button")
#  点击Button按钮 否
if load_window:
    load_window.click()

"""点击窗口左上角Load packet"""
load_packet_window = window.child_window(title="",auto_id="59392", control_type="ToolBar")
load_packet = load_packet_window.child_window(title="Load packet", control_type="Button")
load_packet.click()

"""定位打开窗口,选择输入文件名(这里暂把文件路径固定,后续可做参数化文件路径)"""
open_file = window.child_window(title="打开",control_type="Window")
open_file.print_control_identifiers()
file_edit_path = open_file.child_window(title="文件名(N):", auto_id="1148", control_type="Edit")
file_edit_path.set_text(r"你当前存放软件的路径")

"""点击打开按钮"""
file_open = window.child_window(title="打开(O)", auto_id="1", control_type="Button")
file_open.click()
time.sleep(30)

"""通过烧录线PC与设备连接,点击窗口的start downing 按钮,开始烧录软件"""
load_packet_window = window.child_window(title="",auto_id="59392", control_type="ToolBar")
start_down = window.child_window(title="Start downloading", control_type="Button")
start_down.click()
time.sleep(80)
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-12,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

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