python web自动化-文件上传-亲身实践
文件上传三种方式:
(一)查看元素标签,如果是input,则可以参照文本框输入的形式进行文件上传
方法:和用户输入是一样的,使用send_keys
步骤:1、找到定位元素,2,输入文件路径
ele=driver.find_element_by_id("id")
#说明:参数是文件的路径,在windows中,因为路径是反斜杠,所以在路径之前需要有r
ele.send_keys(r"c:\xxx.txt")
time.sleep(3)
说明:如果不是input标签,直接是div标签,则不能使用上述方法,也不能使用selenium中的(拖拽方法)drag_and_drop(value1,value2),因为文件夹中的文件,是window操作,不是浏览器中的元素,无法定位。则使用以下方式:
(二)使用pywinauto(只能在window平台上面使用)
步骤:1、下载pywinauto包------pip install pywinauto
步骤2:导入 from pywinauto .keyboard import send_keys
步骤3:打开窗口>>>输入文件地址>>>点击打开按钮就行了,请看具体代码.
具体代码如下:
import pywinauto
from pywinauto.keyboard import send_keys # 使用pywinauto来选择文件
app = pywinauto.Desktop()
# 选择文件上传的窗口
dlg = app["打开"] # 选择文件地址输入框,点击激活
dlg["Toolbar3"].click()
# 键盘输入上传文件的路径>>>记住不是文件的地址啊,是文件的上一层地址.
send_keys("D:\data")
# 键盘输入回车,打开该路径
send_keys("{VK_RETURN}") # 选中文件名输入框,输入文件名>>>只需要改文件名就行了,看以下例子
dlg["文件名(&N):Edit"].type_keys("文件名")
# 例如我实战的:
dlg["文件名(&N):Edit"].type_keys("接口测试文件.pdf")
# 点击打开
dlg["打开(&O)"].click()
time.sleep(4)
(三)如果电脑不是window操作系统--使用pyautogui跨平台
使用pyautogui跨平台
pip install pillow==6.2.2
pip insall pyautogui time.sleep(1)
pyautogui.write("d:xxx.txt")
pyautogui.press("enter",2)#输入两次enter键,防止出错 # 说明,有的平台,文件路径中如果包含中文,会报错,解决办法:
import pyperclip #pyautogui中自带的,因此不需要单独安装
pyperclip.copy(r"d:\用户\文件.txt")#复制文件路径
time.sleep(2)
pyautogui.hotkey("ctrl","v")#类似于剪切板上面的粘贴操作
pyautogui.press("enter",presses=2)#输入两次enter键,防止出错
python web自动化-文件上传-亲身实践的更多相关文章
- Python接口自动化——文件上传/下载接口
〇.前言 文件上传/下载接口与普通接口类似,但是有细微的区别. 如果需要发送文件到服务器,例如:上传文档.图片.视频等,就需要发送二进制数据,上传文件一般使用的都是 Content-Type: mul ...
- python - web自动化测试 - 文件上传操作
# 12. 上传操作## (1)如果是input可以直接输入路径的,直接使用send_keys输入路径# (2)非input标签的,需要借助第三方工具:# A. AutoIt : 调用其生成的au3或 ...
- Python 基于Python实现Ftp文件上传,下载
基于Python实现Ftp文件上传,下载 by:授客 QQ:1033553122 测试环境: Ftp客户端:Windows平台 Ftp服务器:Linux平台 Python版本:Python 2.7 ...
- 七牛云存储的 Javascript Web 前端文件上传
因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,七牛云存储的 Web 前端文件上传 七牛是不错的云存储产品,特别是有免费的配额可 ...
- Web Uploader文件上传插件
http://www.jq22.com/jquery-info2665 插件描述:WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现 ...
- Web Uploader文件上传&&使用webupload有感(黄色部分)
引入资源 使用Web Uploader文件上传需要引入三种资源:JS, CSS, SWF. <!--引入CSS--> <link rel="stylesheet" ...
- python Django之文件上传
python Django之文件上传 使用Django框架进行文件上传共分为俩种方式 一.方式一 通过form表单进行文件上传 #=================================== ...
- Selenium2+python自动化-文件上传
前言 文件上传是web页面上很常见的一个功能,自动化成功中操作起来却不是那么简单. 一般分两个场景:一种是input标签,这种可以用selenium提供的send_keys()方法轻松解决:另外一种非 ...
- python django web 端文件上传
利用Django实现文件上传并且保存到指定路径下,其实并不困难,完全不需要用到django的forms,也不需要django的models,就可以实现,下面开始实现. 第一步:在模板文件中,创建一个f ...
- java web(四)文件上传与下载
一.文件上传原理 1.在TCP/IP中,最早出现的文件上传机制是FTP ,它是将文件由客户端发送到服务器的标准机制:但是在jsp使用过程中不能使用FTP方法上传文件,这是由jsp运行机制所决定. 通 ...
随机推荐
- 对于Java平台的理解
谈谈你对 Java 平台的理解?"Java 是解释执行",这句话正确吗? Java 本身是一种面向对象的语言,最显著的特性有两个方面,一是所谓的"一处编译,处处运行& ...
- MySQL中多种排名实现
一.数据库表结构以及数据 CREATE TABLE `forlan_score` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID', ...
- 创建型模式 - 原型模式Prototype
孩子生来没娘的NT审核机制,又开始说我涉及到广告了,我涉及到什么广告了?我接着发. 学习而来,代码是自己敲的.也有些自己的理解在里边,有问题希望大家指出. 所属:创建型模式 原型模式 一般会和 工场 ...
- Java JDK Proxy和CGLib动态代理示例讲解
简介 代理模式在Java中有很多应用场景,而代理又分静态代码和动态代理.静态代理是编写.编译或加载时织入代码实现,而动态代理则在运行时实现.简单而言,静态代理是在运行前就已经存在,而动态代理则在运行时 ...
- ReentrantLock介绍及源码解析
ReentrantLock介绍及源码解析 一.ReentrantLock介绍 ReentrantLock是JUC包下的一个并发工具类,可以通过他显示的加锁(lock)和释放锁(unlock)来实现线程 ...
- saas架构之druid解析表名
public void preHandle(BoundSql boundSql, RequestEntity requestEntity) { System.out.println("要执行 ...
- C# 如何部分加载“超大”解决方案中的部分项目
在有的特有的项目环境下,团队会将所有的项目使用同一个解决方案进行管理.这种方式方面了管理,但是却会导致解决方案变得非常庞大,导致加载时间过长.那么,如何部分加载解决方案中的部分项目呢?就让我们来借用微 ...
- 数据库系列:MySQL慢查询分析和性能优化
1 背景 我们的业务服务随着功能规模扩大,用户量扩增,流量的不断的增长,经常会遇到一个问题,就是数据存储服务响应变慢. 导致数据库服务变慢的诱因很多,而RD最重要的工作之一就是找到问题并解决问题. 下 ...
- Google_MapReduce中文版
笔者最近在看MIT6.824的lab1,实验内容是实现一个简易的MapReduce.本篇文章是MapReduce论文的中文翻译. @Author:Akai-yuan @更新时间:2023/2/13 摘 ...
- Ubuntu环境下利用Apache2部署多个站点
转载csdn:Jochen_M https://blog.csdn.net/jochen_M/article/details/84073588