web自动化之selenium(三)文件上传

1.上传标签为input

#若上传文件的标签为<input>可以直接定位标签,然后send_keys(文件路径)可以直接上传

2.利用第三方软件Autoit上传

#_______________________________复制以下内容SciTE Script Editor

#用来识别windows窗口的
ControlFocus("[Class:#32770]","","Edit1")

#用来设置等待时间等待windows窗口的显示
WinWait("[Class:#32770]","",5)

#用来在“文件名”框内输入上传的文件路径
ControlSetText("[Class:#32770]","","Edit1","C:\Users\Administrator\Desktop\44.png")

Sleep(2000)

#用于单击上传窗口中的“打开”按纽
ControlClick("[Class:#32770]","","Button1")

#_______________________________复制以上内容SciTE Script Editor
title:表示为要加载的文件
标题的class为“#32770”

文件名输入框的class为“Edit”,instance为‘1’


第一步:打开Autolt Windows info 单击 Finder TOOl 按住鼠标左键,将其拖动到需要识别的控制上(用于识别windows控制信息的)

第二步:打开Scite Script Editor 编辑器,写入脚本(编写Autolt脚本的)


第三步:通过菜单栏上的Tools->Go运行脚本(注意此时需要将上传窗口打开)

第四步:打开Compile Script to.exe,将刚才的脚本生成.exe文件(将编写Autolt脚本的转成exe文件的)

第五步:在自动化的代码中运行.exe文件

Autolt是用来进行windowsGUI(图形用户界面)的自动化测试的,它利用模拟键盘按键、鼠标移动和窗口控件的组合来实现自动化的

执行

#前提是先通过selenium打开文件上传对话框,再执行上传
os.system(r"E:\Users\Administrator\Desktop\aa.exe")

缺点:

步骤繁琐,上传的文件要先传参,打包成可执行文件后,就不能灵活的修改文件名称,不能动态的进行文件的上传

3、安装第三方库pywinauto(目前仅支持windows)

pip install pywinauto -i https://pypi.tuna.tsinghua.edu.cn/simple

运行

app = Application()
#定位到"打开"窗口,以句柄的形式
app1 = app.connet(title_re="打开",class_name="#32770")
#定位到文件输入框
app1["打开"]["EDit1"].set_edit_text(r"Users\Administrator\Desktop\1.png")
#定位到确定按钮,需要双击两次
app1["打开"]["Button1"].double_click()
posted @ 2022-03-17 14:17  菜哈哈测试笔记  阅读(307)  评论(0)    收藏  举报