Python web自动化测试 —— 文件上传

​文件上传三种方式:

(一)查看元素标签,如果是input,则可以参照文本框输入的形式进行文件上传

方法:和用户输入是一样的,使用send_keys

步骤:1、找到定位元素,2,输入文件路径ele=driver.find_element_by_id("id")#说明:参数是文件的路径,在windows中,因为路径是反斜杠,所以在路径之前需要有rele.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 pywinautofrom 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("文件名")<br># 例如我实战的:dlg["文件名(&N):Edit"].type_keys("接口测试文件.pdf")<br># 点击打开dlg["打开(&O)"].click()time.sleep(4)
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

(三)如果电脑不是window操作系统--使用pyautogui跨平台

使用pyautogui跨平台
pip install pillow==6.2.2pip insall pyautoguitime.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键,防止出错

END今天的分享就到此结束了,对你有所帮助的话留下小心心哈! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/125204.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何解决缓存雪崩?

缓存雪崩是指在缓存中大量的数据同时失效&#xff0c;导致大量请求直接访问数据库&#xff0c;造成数据库负载急剧增加的情况。为了解决缓存雪崩问题&#xff0c;可以采取以下一些策略和方法&#xff1a; 合理设置缓存的过期时间 分散缓存的过期时间&#xff0c;避免在同一时间…

【大数据基础平台】星环TDH社区开发版单机部署

&#x1f341; 博主 "开着拖拉机回家"带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——&#x1f390;开着拖拉机回家_大数据运维-CSDN博客 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#…

Vue之CSS基础

CSS&#xff1a;层叠样式表 1、选择器 从模板template中选择某元素进行样式设置 需要注意的是作用域到底是当前模板还是整个html文档 1.1 基础(单一)选择器 标签、类、 id、通配符 标签、直接使用标签名&#xff0c;比如div,span… 优点&#xff1a;全选 模板中的名{。。。}…

反射率检测仪如何检测后视镜

后视镜反射率检测是评估后视镜质量的重要步骤&#xff0c;可以反映后视镜的反射效果是否满足设计要求。一般来说&#xff0c;后视镜的反射率越高&#xff0c;驾驶员观察车后的道路状况就越清晰&#xff0c;从而能够更好地判断与后方车辆的距离和速度差。 后视镜反射率检测的原理…

你被骗了吗?别拿低价诱骗机器视觉小白,4000元机器视觉系统怎么来的?机器视觉工程师自己组装一个2000元不到,还带深度学习

淘宝闲鱼&#xff0c;大家搜搜铺价格&#xff0c;特别是机器视觉小白。 机架&#xff1a;&#xff08;新的&#xff09;200元以下。(看需求&#xff0c;自己简单打光&#xff0c;买个50元的。如果复杂&#xff0c;就拿给供应商免费打光) 相机&#xff0c;镜头&#xff1a;&am…

Spring MVC的常用注解(设置响应篇)

目录 1.返回静态页面 2.返回数据 3.返回HTML代码片段 4.返回json 5.设置状态码 6.设置Header &#xff08;1&#xff09;.设置 Content-Type &#xff08;2&#xff09;.设置其他Header 推荐先看前篇博客Spring MVC的常用注解&#xff08;接收请求数据篇&#xff09; 接收…

【数据结构】时间复杂度与空间复杂度

算法在编写成可执行程序后&#xff0c;运行时需要耗费时间资源和空间(内存)资源 。因此衡量一个算法的好坏&#xff0c;一般是从时间和空间两个维度来衡量的&#xff0c;即时间复杂度和空间复杂度。 时间复杂度&#xff1a; 主要衡量一个算法的运行快慢 空间复杂度&#xff1a;…

C#学习相关系列之多线程---ConfigureAwait的用法

一、ConfigureAwait的作用 ConfigureAwait方法是Task类中的一个实例方法&#xff0c;它用于配置任务的运行上下文。运行上下文指的是任务在执行期间所处的环境&#xff0c;包括线程、同步上下文等。ConfigureAwait方法接受一个布尔值参数&#xff0c;用于决定是否捕获上下文。当…

磁盘的命令

目录 1- 磁盘空间命令1.1 df1.2 du只想查看目录的权限 加 -d 参数 1- 磁盘空间命令 1.1 df 全称 disk free 快速获取磁盘被占用了多少空间, 目前还剩下所少空间 常用命令df -hdf 是从总体上统计系统各磁盘的占用情况,不能统计具体的文件夹或文件的大小 1.2 du 全称 disk u…

【JAVA学习笔记】53 - 集合-List类及其子类Collection、ArrayList、LinkedList类

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter14/src/com/yinhai/collection_ https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter14/src/com/yinhai/list_ 集合 一、集合引入 前面我们保存多个数据使用的是数组…

Elasticsearch下载安装,IK分词器、Kibana下载安装使用,elasticsearch使用演示

首先给出自己使用版本的网盘链接&#xff1a;自己的版本7.17.14 链接&#xff1a;https://pan.baidu.com/s/1FSlI9jNf1KRP-OmZlCkEZw 提取码&#xff1a;1234 一般情况下 Elastic Search&#xff08;ES&#xff09; 并不单独使用&#xff0c;例如主流的技术组合 ELK&#xff08…

MyBatis Plus之wrapper用法

一、条件构造器关系 条件构造器关系介绍&#xff1a; 绿色框&#xff1a;抽象类 abstract 蓝色框&#xff1a;正常 class 类&#xff0c;可 new 对象 黄色箭头&#xff1a;父子类关系&#xff0c;箭头指向为父类 wrapper介绍&#xff1a; Wrapper &#xff1a;条件构造抽象类…

mac m1下navicat执行mongorestore 到mongodb

首先&#xff0c;下载https://www.mongodb.com/try/download/mongocli 解压缩后 有可执行文件使用navicat打开 加载后再重新点击 选择 要恢复的文件即可

动态规划23(Leetcode354俄罗斯套娃信封问题)

和题解里方法一几乎一样但是超时 class Solution {public int maxEnvelopes(int[][] envelopes) {int n envelopes.length;Arrays.sort(envelopes,new Comparator<int[]>(){public int compare(int[] arr1,int[] arr2){if(arr1[0]!arr2[0]){return arr1[0]-arr2[0];}el…

CDN加速技术海外与大陆优劣势对比

内容分发网络&#xff08;CDN&#xff09;是一项广泛应用于网络领域的技术&#xff0c;旨在提高网站和应用程序的性能、可用性和安全性。CDN是一种通过将内容分发到全球各地的服务器来加速数据传输的服务。本文将探讨使用CDN的优势以及国内CDN和海外CDN之间的不同优势和劣势。 …

【C语言】函数指针存疑调试及回调函数编写(结构体内的Callback回调函数传参和虚伪的回调函数__weak声明)

【C语言】函数指针存疑调试及回调函数编写&#xff08;结构体内的Callback回调函数传参和虚伪的回调函数__weak声明&#xff09; 文章目录 函数指针存疑调试函数指针函数调用 回调函数编写结构体内的回调函数虚伪的回调函数 附录&#xff1a;压缩字符串、大小端格式转换压缩字符…

数据结构——双向链表的实现

一、双向链表的结构 注意&#xff1a;双向链表又称带头双向循环链表 这⾥的“带头”跟前⾯我们说的“头节点”是两个概念&#xff0c;实际前⾯的在单链表阶段称呼不严 谨&#xff0c;但是为了同学们更好的理解就直接称为单链表的头节点。 带头链表⾥的头节点&#xff0c;实际…

正则表达式以及 pattern 的撰写方式

正则表达式的撰写方法 在Python中,可以使用re模块来进行正则表达式的撰写和匹配。下面是一个基本的正则表达式撰写方法示例: 导入re模块: python import re定义正则表达式模式: python pattern = r正则表达式其中,r表示原始字符串,可以避免转义字符的问题。 使用re模…

kkfileview安装部署Linux(CentOS、Debian)

文章目录 CentOS RPM1、安装 LiberOffice2、验证office是否安装成功3、安装kkfileview4、修改kkfileview配置参数5、启动并日志 UOS deb下载解压开始手动安装 LibreOffice CentOS RPM 1、安装 LiberOffice wget https://kkfileview.keking.cn/LibreOffice_7.1.4_Linux_x86-64…

MySQL---数据用户管理和索引

DDL&#xff1a;CTEATE DROP ALTER dml&#xff1a;对数据进行管理 update insert into delete truncate dpl&#xff1a;查询语句 select dcl&#xff1a;权限控制语句 grant revoke 数据库用户管理 创建用户 修改用户权限 删除用户 grant要在终端执行 创建用户 cr…