• 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')
  • 相关阅读:
    poj1328
    xml入门简介--两天学会xml
    php的一些特殊用法
    数据结构(一)
    队列的 基本操作
    栈的 基本操作
    线性表----单链表
    线性表----顺序表
    数据结构
    链式队列
  • 原文地址:https://www.cnblogs.com/Aphrodite/p/10537780.html
Copyright © 2020-2023  润新知