zoukankan      html  css  js  c++  java
  • python-web自动化:上传操作

    前言-上传操作:有两种情况

    1、如果是input可以直接输入路径的,那么直接调send_keys输入路径

    2、非input标签的上传,则需要借助第三方工具:

         2.1  Autoit我们去调用其生成的au3或exe文件

         2.2  Send_keys第三方库(目前只支持到2.7版本)

                网址:https://pypi.python.org/pyp/Sendkeys

         2.3  python pywin32库,识别对话框句柄,进而操作

                pyautoit

    工具:pywin32库和winspy工具(辅助定位)

    例如:百度网盘+上传窗口(windows)

    工具的样子:拖拽瞄准镜图标到对应需要定位的地方,可以根据text、class值进行定位,点击windows可以看见该元素的父级,点击父级名称可见父级的父级

    (这样上传文件输入框的定位是:edit - combox - comboBoxEx32 - #32770

    实际代码段:

    安装第三方库:pip install pywin32

    引入:

    import win32gui
    import win32con

    # edit - combox - comboBoxEx32 - #32770 从要用到的文件名输入框一直找到父级顶级

    # 前提 :windows上传窗口已经出现。sleep1-2秒等待弹出的出现。(不同的浏览器上传界面的title名称不一样,谷歌是“打开”,火狐是“文件上传”
    def upload(filePath,browser_type="chrome"):
    if browser_type == "chrome":
    title = "打开"
    else:
    title = ""

    #找元素
    #一级窗口"#32770","打开" #如果是其它的浏览器,可能需要改第二个参数,谷歌叫打开
    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) #点击打开按钮


    upload("D:\123.jpeg")



    注意:运行此代码时可以直接登录百度账号,打开上传头像界面,然后运行代码,图片就上传成功了

    
    

     代码运行后图片显示出来了

     
  • 相关阅读:
    怎么知道银行卡号对应的银行
    集合排序、map、枚举
    669. Trim a Binary Search Tree修剪二叉搜索树
    17. Merge Two Binary Trees 融合二叉树
    226. Invert Binary Tree 翻转二叉树
    530.Minimum Absolute Difference in BST 二叉搜索树中的最小差的绝对值
    191. Number of 1 Bits 二进制中1的个数
    Hamming Distance二进制距离
    136. Single Number唯一的数字
    276. Paint Fence篱笆涂色
  • 原文地址:https://www.cnblogs.com/xintiaoab/p/13716611.html
Copyright © 2011-2022 走看看