zoukankan      html  css  js  c++  java
  • 通过pywin32库来上传文件

    先来安装:pip install pywin32

    辅助定位工具winspy下载地址:https://sourceforge.net/projects/winspyex/

    打开后是这玩意:

    按住靶心拖拽到文件名选择框,显示选择框class类名为Edit,还有他的句柄Handle:

    点击Windows,发现他的父级窗口是ComboBox:

    再点击红框句柄进入ComboBox,发现其父级窗口是ComboBoxEx32。

    同理可得ComboBoxEx32的父级窗口为一级窗口#32770,所以Edit是四级窗口。

    同理可得打开按钮Button是二级窗口:

    以博客园后台文件上传为例,打开上传windows窗口之后:

     1 import win32gui
     2 import win32con
     3 
     4 # Chrome browser
     5 def upload_file(file_path):
     6 
     7     # 一级窗口
     8     no1 = win32gui.FindWindow("#32770","打开")
     9     # 二级窗口,4个参数:父级;从父级的第几个儿子开始检索,0表示第一个;自身类名;文本内容,没有则None
    10     combo_box_ex32 = win32gui.FindWindowEx(no1, 0, "ComboBoxEx32", None)
    11     # 3级窗口
    12     combo_box = win32gui.FindWindowEx(combo_box_ex32,0,"ComboBox",None)
    13     # 4级窗口
    14     edit = win32gui.FindWindowEx(combo_box,0,"Edit",None)
    15     # 二级打开按钮
    16     button = win32gui.FindWindowEx(no1, 0, "Button", "打开(&O)")
    17     # 输入文件地址
    18     win32gui.SendMessage(edit, win32con.WM_SETTEXT, None, file_path)
    19     # 点击打开按钮 提交文件
    20     win32gui.SendMessage(no1, win32con.WM_COMMAND, 1, button)
    21 
    22 upload_file("C:\1\nihao.7z")

    这样就可以成功上传了!(其他浏览器的元素文本信息有些许出入,火狐浏览器为”文件上传“,谷歌为”打开“,ie为“选择要加载的文件”。)

  • 相关阅读:
    Trades FZU
    H
    Coconuts HDU
    初始化Linux数据盘、磁盘分区、挂载磁盘(fdisk)
    虚拟机硬盘vmdk压缩瘦身并挂载到VirtualBox
    docker创建tomcat容器无法正常访问
    centos7一步一步搭建docker tomcat 及重点讲解
    docker配置国内阿里云镜像源
    代理模式(2):动态代理
    代理模式(1):静态代理
  • 原文地址:https://www.cnblogs.com/wangyi0419/p/11648934.html
Copyright © 2011-2022 走看看