1.上传标签为input

#若上传文件的标签为<input>可以直接定位标签,然后send_keys(文件路径)可以直接上传

2.利用第三方软件Autoit上传

#_______________________________复制以下内容SciTE Script Editor

#用来识别windows窗口的
ControlFocus("[Class:#32770]","","Edit1") #用来设置等待时间等待windows窗口的显示
WinWait("[Class:#32770]","",5) #用来在“文件名”框内输入上传的文件路径
ControlSetText("[Class:#32770]","","Edit1","C:\Users\Administrator\Desktop\44.png") Sleep(2000) #用于单击上传窗口中的“打开”按纽
ControlClick("[Class:#32770]","","Button1") #_______________________________复制以上内容SciTE Script Editor
title:表示为要加载的文件
标题的class为“#32770” 文件名输入框的class为“Edit”,instance为‘1’ 第一步:打开Autolt Windows info 单击 Finder TOOl 按住鼠标左键,将其拖动到需要识别的控制上(用于识别windows控制信息的) 第二步:打开Scite Script Editor 编辑器,写入脚本(编写Autolt脚本的) 第三步:通过菜单栏上的Tools->Go运行脚本(注意此时需要将上传窗口打开) 第四步:打开Compile Script to.exe,将刚才的脚本生成.exe文件(将编写Autolt脚本的转成exe文件的) 第五步:在自动化的代码中运行.exe文件 Autolt是用来进行windowsGUI(图形用户界面)的自动化测试的,它利用模拟键盘按键、鼠标移动和窗口控件的组合来实现自动化的

执行

#前提是先通过selenium打开文件上传对话框,再执行上传
os.system(r"E:\Users\Administrator\Desktop\aa.exe")

缺点:

步骤繁琐,上传的文件要先传参,打包成可执行文件后,就不能灵活的修改文件名称,不能动态的进行文件的上传

3、安装第三方库pywinauto(目前仅支持windows)

pip install pywinauto -i https://pypi.tuna.tsinghua.edu.cn/simple

运行

app = Application()
#定位到"打开"窗口,以句柄的形式
app1 = app.connet(title_re="打开",class_name="#32770")
#定位到文件输入框
app1["打开"]["EDit1"].set_edit_text(r"Users\Administrator\Desktop\1.png")
#定位到确定按钮,需要双击两次
app1["打开"]["Button1"].double_click()

web自动化之selenium(三)文件上传的更多相关文章

  1. 使用.NET框架、Web service实现Android的文件上传(二)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYUAAAKpCAIAAADcx6fPAAAgAElEQVR4nOydd1hT5+LHg1attbfr1t ...

  2. Web攻防系列教程之文件上传攻防解析(转载)

    Web攻防系列教程之文件上传攻防解析: 文件上传是WEB应用很常见的一种功能,本身是一项正常的业务需求,不存在什么问题.但如果在上传时没有对文件进行正确处理,则很可能会发生安全问题.本文将对文件上传的 ...

  3. 一个简单的QQ隐藏图生成算法 通过jQuery和C#分别实现对.NET Core Web Api的访问以及文件上传

    一个简单的QQ隐藏图生成算法   隐藏图不是什么新鲜的东西,具体表现在大部分社交软件中,预览图看到的是一张图,而点开后看到的又是另一张图.虽然很早就看到过这类图片,但是一直没有仔细研究过它的原理,今天 ...

  4. Kindeditor+web.py+SAE Storage 实现文件上传 - 开源中国社区

    Kindeditor+web.py+SAE Storage 实现文件上传 - 开源中国社区 Kindeditor+web.py+SAE Storage 实现文件上传

  5. selenium+python-autoit文件上传

    前言 关于非input文件上传,点上传按钮后,这个弹出的windows的控件了,已经跳出三界之外了,不属于selenium的管辖范围(selenium不是万能的,只能操作web上元素).autoit工 ...

  6. 通过jQuery和C#分别实现对.NET Core Web Api的访问以及文件上传

    准备工作: 建立.NET Core Web Api项目 新建一个用于Api请求的UserInfo类 public class UserInfo { public string name { get; ...

  7. selenium之 文件上传所有方法整理总结【转】

    本文转自:https://blog.csdn.net/huilan_same/article/details/52439546 文件上传是所有UI自动化测试都要面对的一个头疼问题,今天博主在这里给大家 ...

  8. selenium实现文件上传方法汇总(AutoIt、win32GUI、sengkeys)---基于python

    在使用selenium进行UI自动化测试时,经常会遇到一个关于本地文件上传的问题,解决此问题一般分两种情况: 1. 元素标签为input 2.非input型上传 下面我们分别对着两种情况进行实例分析 ...

  9. selenium之 文件上传方法

    文件上传是所有UI自动化测试都要面对的一个头疼问题 首先,我们要区分出上传按钮的种类,大体上可以分为两种,一种是input框,另外一种就比较复杂,通过js.flash等实现,标签非input 我们分别 ...

随机推荐

  1. json解析出现:java.lang.ClassCastException: net.sf.ezmorph.bean.MorphDynaBean cannot be cast to XXX

    感谢大佬:https://blog.csdn.net/one_ink/article/details/99817676 一.出错原因 当我们利用json解析中的toBean方法时,如果它的属性里面包含 ...

  2. JScrollPane 自动跟进 自动到滚动到最底部

    感谢大佬:https://blog.csdn.net/csdn_lqr/article/details/51068423 注:以下方法为网上摘抄 1 . JTable( 放在JScrollPane中  ...

  3. 如何清除项目git版本控制信息

    首先进入项目目录下 邮件打开 git bash here 执行命令 find . -name ".git" | xargs rm -rf 就清除了git版本控制信息

  4. Linux防火墙(iptables/firewalld)

    Linux防火墙(iptables/firewalld) 目录 Linux防火墙(iptables/firewalld) 一.iptables 1. iptables概述 2. netfilter和i ...

  5. [翻译]Introduction to JSON Web Tokens

    JWT: Json Web Tokens JWT是一种开放标准(RFC 7519),它定义了一种紧凑且独立的方式,用于将各方之间的信息安全地传输为JSON对象.因为它是经过数字签名的,所以该信息可以进 ...

  6. Kubernetes 集群日志 和 EFK 架构日志方案

    目录 第一部分:Kubernetes 日志 Kubernetes Logging 是如何工作的 Kubernetes Pod 日志存储位置 Kubelet Logs Kubernetes 容器日志格式 ...

  7. 帆软报表(finereport)点击事件对话框打开

    点击事件对话框打开iframe var iframe = $("<iframe id='001' name='001' width='100%' height='100%' scrol ...

  8. VC709E 基于FMC接口的FPGA XC7VX690T PCIeX8 接口卡

    一.板卡概述 本板卡基于Xilinx公司的FPGA XC7VX690T-FFG1761 芯片,支持PCIeX8.两组 64bit DDR3容量8GByte,HPC的FMC连接器,板卡支持各种FMC子卡 ...

  9. suse 12 二进制部署 Kubernetets 1.19.7 - 第11章 - 部署coredns组件

    文章目录 1.11.0.部署coredns 1.11.1.测试coredns功能 suse 12 二进制部署 Kubernetes 集群系列合集: suse 12 二进制部署 Kubernetets ...

  10. JavaScript函数式编程(纯函数、柯里化以及组合函数)

    JavaScript函数式编程(纯函数.柯里化以及组合函数) 前言 函数式编程(Functional Programming),又称为泛函编程,是一种编程范式.早在很久以前就提出了函数式编程这个概念了 ...