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)
举例: 利用百度网盘,要先登录百度网盘,并打开上传文件窗口
-----此代码可以直接使用,一般不会变动,只需要注意不同的浏览器,文件上传弹窗的第一级窗口的名字不同即可
import win32con
import win32gui def upload(filePath,browser_type="Chrome"):
# Chrome浏览器
if browser_type == "Chrome":
title = "打开"
# Firefox浏览器
else:
title = "文件上传" 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",None) #四级 # 往文件名编辑框中输入文件路径
# 上传操作
win32gui.SendMessage(edit,win32con.WM_SETTEXT,None,filePath)
win32gui.SendMessage(dialog,win32con.WM_COMMAND,1,button) #点击打开按钮 upload('E:\我\软件进度.xlsx')
python-web自动化-文件上传操作(非input标签的上传,需要借助第三方工具)的更多相关文章
- python - web自动化测试 - 文件上传操作
# 12. 上传操作## (1)如果是input可以直接输入路径的,直接使用send_keys输入路径# (2)非input标签的,需要借助第三方工具:# A. AutoIt : 调用其生成的au3或 ...
- Python中的文件和目录操作实现
Python中的文件和目录操作实现 对于文件和目录的处理,虽然可以通过操作系统命令来完成,但是Python语言为了便于开发人员以编程的方式处理相关工作,提供了许多处理文件和目录的内置函数.重要的是,这 ...
- 【Python web自动化】之读取配置文件参数,利用cookie返回值进行跳过验证码进行登录操作
当进行Python的Web自动化时,会涉及到验证码问题,该如何跳过执行呢,下面请看代码: 1.首先新建配置文件*.ini格式 config.ini [db] #基础地址: baseurl = http ...
- Selenium基于Python web自动化基础一 -- 基础汇总及简单操作
Selenium是UI层WEB端的自动化测试框架,也是目前市面上比较流行的自动化测试框架. ui层自动化测试本质是什么?模拟用户的真实操作行为. 基础汇总: 导入所需要的模块 from seleniu ...
- Python::OS 模块 -- 文件和目录操作
os模块的简介参看 Python::OS 模块 -- 简介 os模块的进程管理 Python::OS 模块 -- 进程管理 os模块的进程参数 Python::OS 模块 -- 进程参数 os模块中包 ...
- Web自动化遇到shadowDOM节点操作(还没试)
近期有同学在做web自动化的时候,发现页面上有些元素,在selenium中无法通过xpath来定位,各种原因找了半天,都没找到解决方案. 最后发现元素在一个叫做shadow-root的节点下面. 如下 ...
- Python基础之文件和目录操作
1 .文件操作 1.1 文件打开和关闭 在python, 使用 open 函数, 可以打开一个已经存在的文件, 或者创建一个新文件. # 打开文件 f = open('test.txt', 'w') ...
- python中 对文件的读写操作 以及如何边写入 边保存flush()
转自:https://blog.csdn.net/t8116189520/article/details/78854708 首先 python中打开文件大致常用的几类如下: 1.写入文件write # ...
- JS ajaxfileUpload 一次性上传多个input控件 上传多个文件
本方法适用于一次性上传多个input框输入的文件,如下图所示,任务是需要一次上传两个input框提供的两个文件. 具体方法: 1.修改ajax调用方法 如上图所示,只需要将ajaxFileUpload ...
随机推荐
- 2.3 i++/i--与++i/--i的运算
一.i++/i--: i先参与运算,运算完成后自加/减1: public class Test{ public static void main(String[] args){ // [1] ; i+ ...
- 记一次禁止chrome打印出现空白页的情况
项目中遇到一个问题:就是chrome浏览器打印时,会多少出一张空白页.经过Google,问题解决.
- Javascript 3.2
对象的三种类型:1.用户定义对象:程序员自己创建的对象 2.内建对象:Javascript语言中的固定对象,如Array/Math/Data等 3.宿主对象:由浏览器提供的对象 BOM:浏览器对象模型 ...
- Ex0203
游戏 – 这些软件的开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户的现金么?还是别的? 朋友们都在玩,我在试玩的时候也觉得很不错:游戏基本上的目标都 ...
- robotframework中的清除输入框输入值
业务需求 当该输入框输入之后,联动某一个按钮高亮,输入框为空的时候,该按钮置灰 需要将输入框清空,清空的办法 1.直接将输入框赋值为${empty} 如:input Text ${loactor} $ ...
- python3 多线程爆破ftp、mysql、ssh
当然 也支持ip 为 127.0.0.1-255 这样的 字典放到 dict 目录里 链接: https://pan.baidu.com/s/1htchOyN5hK9nmZlWfTiFzA 密码: v ...
- php设置cookie为httponly防止xss攻击
什么是XSS攻击? XSS攻击(Cross Site Scripting)中文名为跨站脚本攻击,XSS攻击时web中一种常见的漏洞.通过XSS漏洞可以伪造目标用户登录,从而获取登录后的账号操作. 网站 ...
- C# System.Collections
System.collection类: 动态数组ArrayList 代表了可被单独索引的对象的有序集合.也就是说他是一个动态的数组,你可以通过索引来进行增删改等操作,数组会自动调整数组的大小.允许在列 ...
- Python中第三方的用于解析HTML的库:BeautifulSoup
背景 在Python去写爬虫,网页解析等过程中,比如: 如何用Python,C#等语言去实现抓取静态网页+抓取动态网页+模拟登陆网站 常常需要涉及到HTML等网页的解析. 当然,对于简单的HTML中内 ...
- Skin Microstructure Deformation with Displacement Map Convolution项目小结
经常有人问我你最近在干什么,但一句话真的很难说明白,最近两个月一直在尝试将Skin Microstructure Deformation with Displacement Map Convoluti ...