web自动化之selenium(三)文件上传
1.上传标签为input
#若上传文件的标签为<input>可以直接定位标签,然后send_keys(文件路径)可以直接上传
2.利用第三方软件Autoit上传
1.下载Autoit:https://www.autoitscript.com/site/autoit/downloads/并安装
2.复制以下内容至SciTE Script Editor,修改文件地址,保存
3.将保存的文件用Compile Script to.exe进行编译成可执行文件
4.在需要进行文件操作的地方进行调用
#_______________________________复制以下内容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(三)文件上传的更多相关文章
- 使用.NET框架、Web service实现Android的文件上传(二)
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYUAAAKpCAIAAADcx6fPAAAgAElEQVR4nOydd1hT5+LHg1attbfr1t ...
- Web攻防系列教程之文件上传攻防解析(转载)
Web攻防系列教程之文件上传攻防解析: 文件上传是WEB应用很常见的一种功能,本身是一项正常的业务需求,不存在什么问题.但如果在上传时没有对文件进行正确处理,则很可能会发生安全问题.本文将对文件上传的 ...
- 一个简单的QQ隐藏图生成算法 通过jQuery和C#分别实现对.NET Core Web Api的访问以及文件上传
一个简单的QQ隐藏图生成算法 隐藏图不是什么新鲜的东西,具体表现在大部分社交软件中,预览图看到的是一张图,而点开后看到的又是另一张图.虽然很早就看到过这类图片,但是一直没有仔细研究过它的原理,今天 ...
- Kindeditor+web.py+SAE Storage 实现文件上传 - 开源中国社区
Kindeditor+web.py+SAE Storage 实现文件上传 - 开源中国社区 Kindeditor+web.py+SAE Storage 实现文件上传
- selenium+python-autoit文件上传
前言 关于非input文件上传,点上传按钮后,这个弹出的windows的控件了,已经跳出三界之外了,不属于selenium的管辖范围(selenium不是万能的,只能操作web上元素).autoit工 ...
- 通过jQuery和C#分别实现对.NET Core Web Api的访问以及文件上传
准备工作: 建立.NET Core Web Api项目 新建一个用于Api请求的UserInfo类 public class UserInfo { public string name { get; ...
- selenium之 文件上传所有方法整理总结【转】
本文转自:https://blog.csdn.net/huilan_same/article/details/52439546 文件上传是所有UI自动化测试都要面对的一个头疼问题,今天博主在这里给大家 ...
- selenium实现文件上传方法汇总(AutoIt、win32GUI、sengkeys)---基于python
在使用selenium进行UI自动化测试时,经常会遇到一个关于本地文件上传的问题,解决此问题一般分两种情况: 1. 元素标签为input 2.非input型上传 下面我们分别对着两种情况进行实例分析 ...
- selenium之 文件上传方法
文件上传是所有UI自动化测试都要面对的一个头疼问题 首先,我们要区分出上传按钮的种类,大体上可以分为两种,一种是input框,另外一种就比较复杂,通过js.flash等实现,标签非input 我们分别 ...
随机推荐
- 利用纯代码写出一个秒表表盘的方法 —— #DF
@interface ViewController () @property (nonatomic, strong) CALayer *secLayer; // 秒针layer @property ( ...
- Scala中的流程控制
一.分支控制if-else //Scala中if-else语句中,代码块内最后一句代码就是返回值 def main(args: Array[String]): Unit = { var age:Int ...
- springBoot工程解决跨域问题
更新:通过一个 @CrossOrigin 注解就可以完美解决跨域问题. 创建一个配置类 package com.miaoshaProject.configuration; import org.sp ...
- redis(二)-----redis基本数据类型之字符串
Redis的全称是REmote Dictionary Server,它主要提供了5种数据结构:字符串.哈希.列表.集合.有序集合,同时在字符串的基础之上演变 出了位图(Bitmaps)和HyperLo ...
- WPF之复选MVVM TreeView(TreeView+CheckBox)
需求背景: 当我们用到权限菜单栏时权限菜单栏属于递归效果,我们需要用到TreeView+CheckBox进行组合复选开发时,我们需要解决此类问题时怎么办,那么就引出今天的小笔记内容 实现方式: 下载M ...
- CentOS 7 升级 gcc-4.8.5 到 gcc-5.4.0
文章目录 1.环境介绍 2.下载gcc-5.4.0源码包 3.编译安装gcc 4.验证gcc版本 5.更新gcc连接 1.环境介绍 [root@localhost ~]# gcc -v Using b ...
- Dubbo SPI机制之三Adaptive自适应功能
JDK标准中SPI机制的一个问题就是其一次性实例化扩展点所有实现,如果有扩展实现初始化很耗时,但如果没用上也加载,会很浪费资源:扩展点加载失败,其他扩展点都用不了了.Dubbo是如何解决该问题动态的选 ...
- WebKit Inside: DOM树的构建
当客户端App主进程创建WKWebView对象时,会创建另外两个子进程:渲染进程与网络进程.主进程WKWebView发起请求时,先将请求转发给渲染进程,渲染进程再转发给网络进程,网络进程请求服务器.如 ...
- 《SelfClass》——Docker
<SelfClass>--Docker 根据我的个人计划,我需要先了解一下Docker,并且能够使用起来. 目的:在我Mac上搭建一个Docker,在Docker上搭建一个MySQL数据库 ...
- java实现 TCP通信
//服务端import com.hl.bluetooth.util.CRC16; import com.hl.bluetooth.util.FrameCheckFailedException; imp ...