使用python在web自动化中经常碰到文件上传的操作,一般文件上传存在input输入框的话可以直接采用send_keys()的方法传入文件,在没有输入框的文件上传则要借用其他第三方库来完成,下面介绍几种文件上传的方法。
方法一
pywin32库
#导入win32gui、win32con
import win32gui
import win32con
def upload(self,filePath):
title = “打开”
dialog = win32gui.FindWindow("#32770", title) # 一级窗口
ComboBoxEx32 = win32gui.FindWindowEx(dialog, 0, “ComboBoxEx32”, None) # 二级
comboBox = win32gui.FindWindowEx(ComboBoxEx32, 0, “ComboBox”, None) # 三级
# 编辑按钮
edit = win32gui.FindWindowEx(comboBox, 0, ‘Edit’, None) # 四级
# 打开按钮
button = win32gui.FindWindowEx(dialog, 0, ‘Button’, “打开(&O)”) # 四级
# 往编辑当中,输入文件路径 。
win32gui.SendMessage(edit, win32con.WM_SETTEXT, None, filePath) # 发送文件路径
win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button) # 点击打开按钮
方法二
pywinauto库
#操作系统指令
from pywinauto import Desktop
app = Desktop()
dialog = app[‘打开’]
dialog[“Edit”].type_keys(r"C:\Users\Asus\Pictures\QQ浏览器截图\pp.png")
dialog[“Button”].click()
方法三
pyautogui跨平台
pyautogui库可以跨平台使用,Windows、Linux、Mac都可以,但是需要注意以下情形
情形一:
python3.8版本
1.需先安装依赖库 pillow== 6.2.2
2.然后安装pyautogui库
情形二:
非python3.8版本
直接安装pyautogui库
代码示例:
pyautogui.write(‘d:\text.txt’) #注意盘符为小写
pyautogui.press(‘enter’,2) #这里为避免上传失败情况,尽量使用2次确定键
如果路径中含有中文,则需要导入python剪切板
代码示例:
import pyperclip
pyperclip.copy(‘D:\用户.txt’)
time.sleep(2)
pyautogui.hotkey(‘ctrl’,‘v’)
pyautogui.press(‘enter’,presses=2)
最后: 下方这份完整的软件测试视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取【保证100%免费】
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
软件测试技术交流群社:786229024(里面还有工作内推机会,毕竟我们是关系社会。)
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。