2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 自动化测试之浏览器上传功能实现

自动化测试之浏览器上传功能实现

时间:2023-11-08 03:20:30

相关推荐

自动化测试之浏览器上传功能实现

在进行webUI自动化过程中,经常会遇到在浏览器上传文件的需求,一般常见的上传方法有两类。

第一类:直接使用sendkey方法给上传元素赋值,值为上传文件的绝对路径,这种方法比较简单,也不需要点击上传元素,但这种情况较少,不是所有上传功能都能这样搞定。

第二类:还有一部分使用三方插件实现的上传功能,必须通过点击上传元素,填写上传文件的绝对路径的方式上传文件,就必须通过操作win32的方式实现,本文主要介绍该方法。

使用python与win32库实现操作弹出的windows资源管理器窗口,如下

导入win32库:pip install pywin32

import sysimport timeimport win32guiimport win32conimport osdef upload_file(directory, file_name):sys_window = win32gui.FindWindow('#32770', u'打开') # 找到弹出的文件管理对话框comboBoxEx32 = win32gui.FindWindowEx(sys_window, 0, 'ComboBoxEx32', None)comboBox = win32gui.FindWindowEx(comboBoxEx32, 0, 'ComboBox', None)edit = win32gui.FindWindowEx(comboBox, 0, 'Edit', None) # 找到输入框Edit对象的句柄button = win32gui.FindWindowEx(sys_window, 0, 'Button', None) # 确定按钮Button# 拼接最终要上传文件的绝对路径absolute_path = os.path.join(directory, file_name)win32gui.SendMessage(edit, win32con.WM_SETTEXT, None, absolute_path) # 输入框输入绝对地址win32gui.SendMessage(sys_window, win32con.WM_COMMAND, 1, button) # 打开print(f"文件 [{absolute_path}] 上传完成。")time.sleep(1)

按照以上方法,可以使用python代码实现,如果需要更加适用,还需增加英文操作系统下的代码适配、入参异常等处理。

为了方便使用,也可以对其加以封装,然后借助pyinstaller,将编写完成的代码转换为.exe格式的可执行文件,方便之后在各种自动化使用场景下使用。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。