上篇说明了如何打开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)