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. transition过渡2D、3D效果

    过渡(transition)是CSS3中具有颠覆性的特征之一,我们可以在不使用 Flash 动画或 JavaScript 的情况下,当元素从一种样式变换为另一种样式时为元素添加效果. 帧动画:通过一帧 ...

  2. IIS 配置相应的文件下载

    转载请注明来源:https://www.cnblogs.com/hookjc/ 1.设置MIME,让IIS支持更多文件类型下载 比如添加支持.exe文件下载 打开IIS,选中服务器,点右键,属性里有M ...

  3. 关于protected在子类创建父类对象无法访问父类protected方法或成员

    子类(父类的外部包)中访问父类的protetcted属性或者方法,是不可以通过创建父类对象调用的.注意:此处不讨论同包下的父类子类,因为同包下所有类都可访问protected属性或者方法. 请参见Ja ...

  4. docker基础——4.网络待补

    docker network ls bridge:NAT桥 host:共用宿主机namespace的UTS.IPC.Network none:只有lo,没有网卡 其他待补

  5. 基于Oracle数据库登陆界面及功能实现 Java版

    首先要在Oracle数据库创建表文件,包括建立表头以及关键字(唯一标识符),此次程序所用的表名称为SW_USER_INFO,表头有UNAME.UKEY.USEX等,关键字为UCC,然后添加一条记录,用 ...

  6. 私有化轻量级持续集成部署方案--03-部署web服务(上)

    提示:本系列笔记全部存在于 Github, 可以直接在 Github 查看全部笔记 这一篇主要讲述部署一个 Web 项目,项目是我曾经搞的一个 VUE 模板项目:https://github.com/ ...

  7. Solution -「CF 840C」On the Bench

    \(\mathcal{Description}\)   Link.   给定数列 \(\{a_n\}\),求排列 \(\{p_n\}\) 的个数,使得 \((\forall i\in[1,n))(a_ ...

  8. Solution -「JOISC 2019」「LOJ #3036」指定城市

    \(\mathcal{Description}\)   Link.   给定一棵含 \(n\) 个结点的树,双向边权不相同.\(q\) 次询问,每次询问在树上标记 \(e\) 个点,标记的价值为所有趋 ...

  9. 海盗湾The Pirate Bay:每一名技术人员都应该思考的问题

    海盗湾The Pirate Bay:一场互联网技术下没有硝烟的战争 写在前面: 开学啦,返校啦!祝大家新的一年,工作顺顺利利,家庭幸福美满! 正文: 假期的时候,闲来无事,看了几部纪录片,其中< ...

  10. 第二章 初始MySQL 语法

    1.使用MySQL的优势 运行速度快.MySQL体积小,命令执行的速度快: 使用成本低.MySQL是开源的. 容易使用. 可移植性强.MySQL能够运行于多种系统平台之上,windows,linux, ...