文件上传操作

一、文件上传分两种情况:
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标签的上传,需要借助第三方工具)的更多相关文章

  1. python - web自动化测试 - 文件上传操作

    # 12. 上传操作## (1)如果是input可以直接输入路径的,直接使用send_keys输入路径# (2)非input标签的,需要借助第三方工具:# A. AutoIt : 调用其生成的au3或 ...

  2. Python中的文件和目录操作实现

    Python中的文件和目录操作实现 对于文件和目录的处理,虽然可以通过操作系统命令来完成,但是Python语言为了便于开发人员以编程的方式处理相关工作,提供了许多处理文件和目录的内置函数.重要的是,这 ...

  3. 【Python web自动化】之读取配置文件参数,利用cookie返回值进行跳过验证码进行登录操作

    当进行Python的Web自动化时,会涉及到验证码问题,该如何跳过执行呢,下面请看代码: 1.首先新建配置文件*.ini格式 config.ini [db] #基础地址: baseurl = http ...

  4. Selenium基于Python web自动化基础一 -- 基础汇总及简单操作

    Selenium是UI层WEB端的自动化测试框架,也是目前市面上比较流行的自动化测试框架. ui层自动化测试本质是什么?模拟用户的真实操作行为. 基础汇总: 导入所需要的模块 from seleniu ...

  5. Python::OS 模块 -- 文件和目录操作

    os模块的简介参看 Python::OS 模块 -- 简介 os模块的进程管理 Python::OS 模块 -- 进程管理 os模块的进程参数 Python::OS 模块 -- 进程参数 os模块中包 ...

  6. Web自动化遇到shadowDOM节点操作(还没试)

    近期有同学在做web自动化的时候,发现页面上有些元素,在selenium中无法通过xpath来定位,各种原因找了半天,都没找到解决方案. 最后发现元素在一个叫做shadow-root的节点下面. 如下 ...

  7. Python基础之文件和目录操作

    1 .文件操作 1.1 文件打开和关闭 在python, 使用 open 函数, 可以打开一个已经存在的文件, 或者创建一个新文件. # 打开文件 f = open('test.txt', 'w') ...

  8. python中 对文件的读写操作 以及如何边写入 边保存flush()

    转自:https://blog.csdn.net/t8116189520/article/details/78854708 首先 python中打开文件大致常用的几类如下: 1.写入文件write # ...

  9. JS ajaxfileUpload 一次性上传多个input控件 上传多个文件

    本方法适用于一次性上传多个input框输入的文件,如下图所示,任务是需要一次上传两个input框提供的两个文件. 具体方法: 1.修改ajax调用方法 如上图所示,只需要将ajaxFileUpload ...

随机推荐

  1. CSS制作环形进度条

    参考来源 <Radial progress indicator using CSS>,该文核心是用纯CSS来做一个环形的进度条.纯css的意思就是连百分比这种数字,都是css生成的.文章作 ...

  2. 15个HTML元素方法!

    首先让我们来讨论一下 HTML 与 DOM 之间的区别. 显然,普通的 <table> 元素就是一段 HTML 代码,它可以应用在任何一个以 .html 为扩展名的文件中.元素自带一系列特 ...

  3. webbug3.0靶场第二关

    由于是新手,当看见一个图片后一脸蒙比,查了一下才知道这原来叫做隐写术 看人家说破解图片隐写术用Stegsolve非常好用,然后查了一下kali软件仓库并没有找到Steegsolve这个软件,只能另想他 ...

  4. hdu 1372 BFS

    A friend of you is doing research on the Traveling Knight Problem (TKP) where you are to find the sh ...

  5. PTA2

    一.题目:7-1 币值转换 (20 分) 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成“贰万叁仟壹百零捌”元.为了简化输出,用 ...

  6. Android Historian安装使用

    1.先安装docker 2.安装Historian,可使用如下docker镜像: sudo docker run -p 9000:9999 registry.cn-hangzhou.aliyuncs. ...

  7. python------mysql API

    参考引用博客:http://www.cnblogs.com/wupeiqi/articles/5713330.html ifconfig是linux中用于显示或配置网络设备(网络接口卡)的命令,英文全 ...

  8. 在安卓手机上安装完整kali linux系统

    俗话说,没图说个JB.好我马上上图 提醒:我在这里只是提供一个思路过程,希望可以帮到你,同时我也做一个记录,有任何问题欢迎  0.0.:I87OI94664  威信 :Z2tsYmI1MjA=  (b ...

  9. 【转载】【SQL练习】经典SQL练习题

    出处 https://blog.csdn.net/mrbcy/article/details/68965271 准备数据 建表语句 CREATE TABLE students (sno VARCHAR ...

  10. Xshell5一打开就提示要使用该程序,请更新至最新版本

    网上有两种方法 方法一:临时 修改系统时间,修改为一年前的时间即可.但是你会发现修改回当前时间后,xshell又打不开了 方法二:替换xshell文件 找到xshell安装位置,如果是快捷方式,可以右 ...