# 12. 上传操作
#
# (1)如果是input可以直接输入路径的,直接使用send_keys输入路径
# (2)非input标签的,需要借助第三方工具:
# A. AutoIt : 调用其生成的au3或exe文件
# B. SendKeys第三方库:目前只支持到2.7版本
# C. Python pywin32库:识别对话框句柄,进而操作 # 工具:pywin32 和 WinSpy(识别windows控件的工具)
# 在pywin32中,查找一层窗口的方法为:win32gui模块下的FindWindow
# 在某窗口下查找子窗口的方法为:win32gui模块下的FindWindowEx
# 执行编辑操作、点击操作的方法为:win32gui模块下的SendMessage # win32gui.FindWindow(IpClassName,IpWindowName)
# 自顶层窗口开始寻找匹配条件的窗口,并返回这个窗口的句柄
# IpClassName : 类名,在Spy++里能够看到
# IpWindowName: 窗口名,标题栏上能看到的名字 # win32gui.FindWindowEx(hwndParent=0,hendChildAfter=0,lpszClass=None,lpszWindow=None)
# 搜索类名和窗体名匹配的窗体,并返回这个窗体的句柄;找不到就返回0
# hwndParent : 若不为0,则搜索句柄为hwndParent窗体的子窗体
# hwndChildAfter :若不为0,则按照z-index的顺序从hwndChildAfter向后开始搜索子窗体,否则从第一个子窗体开始搜索
# IpClassName : 字符型,是窗体的类名
# IpWindowName : 字符型,是窗口名 # win32gui.SendMessage(hWnd,Msg,wParam,lParam)
# hWnd : 整型,接收消息的窗体句柄
# Msg :整型,要发送的消息,这些消息都是windows预先定义好的
# wParam:整型,消息的wParam参数
# lParam:整型,消息的lParam参数


import win32gui
import win32con def upload_chrome(filepath):
# 一级窗口
dialog = win32gui.FindWindow('#32770','打开')
# 二级窗口
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) file_path = 'F:\VOC\测试图片\视频遮挡\遮挡.png'
upload_chrome(file_path)

												

python - web自动化测试 - 文件上传操作的更多相关文章

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

    文件上传操作 一.文件上传分两种情况:1. 如果是input可以直接输入路径的,可以直接调send_keys输入路径 2. 非input标签的上传,需要借助第三方工具:    2.1 Autolt 需 ...

  2. 七牛云存储的 Javascript Web 前端文件上传

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,七牛云存储的 Web 前端文件上传 七牛是不错的云存储产品,特别是有免费的配额可 ...

  3. ui自动化chrome文件上传操作

    web自动化,再chrome浏览器中文件上传操作

  4. Web Uploader文件上传插件

    http://www.jq22.com/jquery-info2665   插件描述:WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现 ...

  5. Web Uploader文件上传&&使用webupload有感(黄色部分)

    引入资源 使用Web Uploader文件上传需要引入三种资源:JS, CSS, SWF. <!--引入CSS--> <link rel="stylesheet" ...

  6. python Django之文件上传

    python Django之文件上传 使用Django框架进行文件上传共分为俩种方式 一.方式一 通过form表单进行文件上传 #=================================== ...

  7. Python 基于Python实现Ftp文件上传,下载

    基于Python实现Ftp文件上传,下载   by:授客 QQ:1033553122 测试环境: Ftp客户端:Windows平台 Ftp服务器:Linux平台 Python版本:Python 2.7 ...

  8. 基于python的selenium两种文件上传操作

    方法一.input标签上传     如果是input标签,可以直接输入路径,那么可以直接调用send_keys输入路径,这里不做过多赘述,前文有相关操作方法. 方法二.非input标签上传 这种上传方 ...

  9. python django web 端文件上传

    利用Django实现文件上传并且保存到指定路径下,其实并不困难,完全不需要用到django的forms,也不需要django的models,就可以实现,下面开始实现. 第一步:在模板文件中,创建一个f ...

随机推荐

  1. HDU 2256Problem of Precision(矩阵快速幂)

    题意 求$(\sqrt{2} + \sqrt{3})^{2n} \pmod {1024}$ $n \leqslant 10^9$ Sol 看到题解的第一感受:这玩意儿也能矩阵快速幂??? 是的,它能q ...

  2. Python3中requests库学习01(常见请求示例)

    1.请求携带参数的方式1.带数据的post data=字典对象2.带header的post headers=字典对象3.带json的post json=json对象4.带参数的post params= ...

  3. 拷贝文件至U盘——提示:对于目标系统文件过大

    一.问题描述: 在制作U盘启动工具的时候,通常制作出的U盘文件系统是FAT32,但是当需要拷贝进去的系统文件大小超过4GB时,就会提示上述问题 二.解决办法: 1.格式化U盘,在格式化界面“文件系统” ...

  4. HDU 1864 最大报销额(01背包,烂题)

    题意:被坑惨,单项不能超过600,其实是一张发票上A类/B类/C类的总和分别不能超过600. 思路:此题的数据很烂.用贪心也能过,用01背包也可以.都测试不出到底那些是错的. #include < ...

  5. 51nod 1276 岛屿的数量

    题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 有N个岛连在一起形成了一个大的岛屿,如果海平面上升超过某些岛的高度时,则这个岛会被淹没 ...

  6. Android(java)学习笔记125:保存数据到SD卡 (附加:保存数据到内存)

    1. 如果我们要想读写数据到SD卡中,首先必须知道SD的路径: File file = new File(Environment.getExternalStorageDirectory()," ...

  7. mac层到ath9k层,ath9k层到硬件层

    如上图,整个 mac 层分成两个部分——UMAC 和 LMAC.LMAC 分成 MAC 下半部分和硬件抽象层. 硬件抽象层和ath9k层的连接 在hw.h中的函数struct ath_hw_ops() ...

  8. sql server 定时备份 脚本

    ) DECLARE @date DATETIME SELECT @date = GETDATE() SELECT @filename = 'G:\backup\NewPlulishSQL-' + CA ...

  9. IDEA 官方背景与修改jsp模板以及字体大小

    一.官方背景切换 方法一:先打开file找到Settings  如图: 也可以用快捷方式打开:Ctrl+alt+s  打开 找到Editor点击进入 ,再然后找Color Scheme 可以看到如下图 ...

  10. Java多线程 编写三各类Ticket、SaleWindow、TicketSaleCenter分别代表票信息、售票窗口、售票中心。 售票中心分配一定数量的票,由若干个售票窗口进行出售,利用你所学的线程知识来模拟此售票过程。

    package com.swift; import java.util.ArrayList; import java.util.HashMap; import java.util.List; impo ...