Pywinauto之Windows UI自动化3

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

一、指定文件路径

"""点击窗口左上角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()

time.sleep(3)

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

while(True):
    if app.window(title="否(N)", auto_id="7", control_type="Button").exists():
        break
app['否(N)'].Ok.click()

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

app.window(title="否(N)", auto_id="7", control_type="Button").Wait('enabled',timeout=300)
app['否(N)'].Ok.click()

四、全部代码

最后汇总下整体代码

#!/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)

本文分享自微信公众号 - 自学测试之道(zxceshi)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券