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,一经查实,立即删除!

相关文章

【大数据基础平台】星环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;用于决定是否捕获上下文。当…

【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打开 加载后再重新点击 选择 要恢复的文件即可

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

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

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

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

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

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

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

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

function函数指针和lamada的[]和[=]注意事项

在工作的过程中&#xff0c;lamda表达式的 重点&#xff1a; 1.function对象存储函数指针。 2.lamada表达式&和捕捉的方式 lamda传入引用&&#xff0c;导致作用域消失&#xff0c;最终报错 std::function<void()> pFun; void GetNum1(const std::function<…

企业在招标流程中面临的 6 大挑战

采购中的招标是一种采购策略&#xff0c;包括向不同的销售商/供应商询价&#xff08;RFQ&#xff09;和索取资料&#xff08;RFI&#xff09;&#xff0c;以比较其特点、价格和功能。 工作团队在招标采购流程中投入了数个小时&#xff0c;但在整个过程中仍不得不忍受失望和不适…

【抓包分析】通过ChatGPT解密还原某软件登录算法实现绕过手机验证码登录

文章目录 &#x1f34b;前言实现效果成品广告抓包分析一、定位加密文件二、编辑JS启用本地替换 利用Chatgpt进行代码转换获取计划任务id模拟数据请求最后 &#x1f34b;前言 由于C站版权太多&#xff0c;所有的爬虫相关均为记录&#xff0c;不做深入&#xff01; 今天发现gith…

数据结构 | 算法的时间复杂度和空间复杂度【详解】

数据结构 | 算法的时间复杂度和空间复杂度【详解】 文章目录 数据结构 | 算法的时间复杂度和空间复杂度【详解】1. 什么是数据结构&#xff1f;2. 什么是算法&#xff1f;3. 算法效率4. 时间复杂度4.1 时间复杂度的概念4.2 推导大O阶的方法&#xff1a;4.3 常见时间复杂度计算举…

Leetcode—274.H指数【中等】

2023每日刷题&#xff08;十三&#xff09; Leetcode—274.H指数 算法思想 参考自灵茶山艾府 实现代码 int minValue(int a, int b) {return a < b ? a : b; }int hIndex(int* citations, int citationsSize){int cnt[5001] {0};int i;for(i 0; i < citationsSize; …