python-web自动化-文件上传操作(非input标签的上传,需要借助第三方工具)

文件上传操作

 

一、文件上传分两种情况:
1. 如果是input可以直接输入路径的,可以直接调send_keys输入路径


2. 非input标签的上传,需要借助第三方工具:
    2.1 Autolt 需要去调用其生成的.au3或.exe文件.----不推荐,了解
    2.2 SendKeys第三方库(目前只支持到2.7版本)----不推荐,了解
    2.3 Python pywin32库,识别对话框句柄,进而操作 ------pip install pywin32

 

二、文件上传框,定位工具Winspy:

上传窗口 dialog(win32gui.FindWindo)=======子窗口:打开按钮 button (win32gui.FindWindowEx)
                        ||
子窗口 ComboBoxEx32 (win32gui.FindWindowEx)
                       ||
子窗口 ComboBox (win32gui.FindWindowEx)
                        ||
子窗口:文件路径输入框 edit(win32gui.FindWindowEx)

 

 

举例: 利用百度网盘,要先登录百度网盘,并打开上传文件窗口

-----此代码可以直接使用,一般不会变动,只需要注意不同的浏览器,文件上传弹窗的第一级窗口的名字不同即可

 1 import win32con
 2 import win32gui
 3 
 4 def upload(filePath,browser_type="Chrome"):
 5     # Chrome浏览器
 6     if browser_type == "Chrome":
 7         title = "打开"
 8     # Firefox浏览器
 9     else:
10         title = "文件上传"
11 
12     dialog = win32gui.FindWindow("#32770",title)  #一级窗口  ‘打开窗口’
13     ComboBoxEx32 = win32gui.FindWindowEx(dialog,0,"ComboBoxEx32",None) #二级
14     ComboBox = win32gui.FindWindowEx(ComboBoxEx32,0,"ComboBox",None) #三级
15     edit = win32gui.FindWindowEx(ComboBox,0,"Edit",None) #四级
16     button = win32gui.FindWindowEx(dialog,0,"Button",None) #四级
17 
18     # 往文件名编辑框中输入文件路径
19     # 上传操作
20     win32gui.SendMessage(edit,win32con.WM_SETTEXT,None,filePath)
21     win32gui.SendMessage(dialog,win32con.WM_COMMAND,1,button) #点击打开按钮
22 
23 
24 upload('E:\我\软件进度.xlsx')

 

转载于:https://www.cnblogs.com/Aphrodite/p/10537780.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值