解决gui自动化中,有“上传文件”功能时的操作问题

解决gui自动化中有"上传文件"功能时的操作问题,实现用代码自动选择文件的操作

在做gui自动化的过程中,相信有很多人前期都会遇到测试“上传文件”功能时,不知道如何去操作定位的问题,今天给大家介绍两种方式解决

第一种(UIAutomation库)

(不太稳定,不推荐)
用python中的UIAutomation库(用来控制windows中的C/S架构的程序)
来识别这些控件的属性(ClassName,ControType,AutomationId,Name)
这些属性都可用来做定位,前提需要这个属性是唯一的(其他控件不能与其属性值相同)
例:
先使用inspect工具,识别到你要选择的文件
在这里插入图片描述比如这个文件的Name是叫"DesktopA.gif",那么就用它的name属性定位到这个文件,然后进行点击(click)
然后再去识别那个“打开”按钮的属性,进行点击(click)
代码如下:

import uiautomation  #别忘了导入库
uiautomation.ButtonControl(Name="DesktopA.gif").Click()
uiautomation.ButtonControl(Name='"打开(O)"').Click()

第二种(windows的键盘操作库(pykeyboard))

(推荐此方法)
在这里插入图片描述
我们在打开这个窗口的时候是默认在文件名那个编辑窗口位置并且是编辑状态,所以只需要把我们想要上传的文件的路径输入进去,然后在加上“打开”按钮的快捷键(Alt+O),就可以进行上传了
代码如下:
(切记输入法要改为英文的,不然输入路径的时候会出错)

self.k=PyKeyboard()  #创建键盘操作对象
self.k.type_string(r'‪C:\Users\Shinelon\Pictures\Saved Pictures\jmeter.png')  #输入文件的路径
self.k.press_key(self.k.alt_key)  #按下Alt键
self.k.tab_key("o")  #按一下o键
self.k.release_key(self.k.alt_key)  #松开Alt键

最后的效果如下(已经成功选择文件了)
在这里插入图片描述

如果输入的路径中有中文,type_string方法就无法输入路径了
就要借助另一个库了(pyperclip库下的copy方法)
代码如下(别忘了导入pyperclip库)

self.k=PyKeyboard()  #创建键盘操作对象
pyperclip.copy(r'C:\Users\Shinelon\Pictures\Screenshots\屏幕截图(1).png')  #拷贝路径
self.k.press_keys([self.k.control_key,'v'])   #同时按下ctrl+v 粘贴
self.k.release_key(self.k.control_key)  #松开ctrl键
self.k.release_key('v')   #松开v键
self.k.press_key(self.k.alt_key)  #按下Alt键
self.k.tap_key("o")  #按一下o键
self.k.release_key(self.k.alt_key)  #松开Alt键

最后的效果如下(已经成功选择文件了)在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值