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)
(三)如果电脑不是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键,防止出错
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方进群即可自行领取。
相关文章:
Python web自动化测试 —— 文件上传
文件上传三种方式: (一)查看元素标签,如果是input,则可以参照文本框输入的形式进行文件上传 方法:和用户输入是一样的,使用send_keys 步骤:1、找到定位元素,2&#…...
wpf使用CefSharp.OffScreen模拟网页登录,并获取身份cookie,C#后台执行js
目录 框架信息:MainWindow.xamlMainWindow.xaml.cs爬取逻辑模拟登录拦截请求Cookie获取 CookieVisitorHandle 框架信息: CefSharp.OffScreen.NETCore 119.1.20 MainWindow.xaml <Window x:Class"Wpf_CHZC_Img_Identy_ApiDataGet.MainWindow&qu…...
【代码随想录刷题】Day18 二叉树05
文章目录 1.【513】找树左下角的值1.1题目描述1.2 解题思路1.2.1 迭代法思路1.2.2 递归法思路 1.3 java代码实现1.3.1 迭代法java代码实现1.3.2 递归法java代码实现 2. 【112】路径总和2.1题目描述2.2 解题思路2.3 java代码实现 3.【106】从中序与后序遍历序列构造二叉树3.1题目…...
2023.11.25更新关于mac开发APP(flutter)的笔记与整理(实机开发一)
我自己写的笔记很杂,下面的笔记是我在chatgpt4的帮助下完成的,希望可以帮到正在踩坑mac开发APP(flutter)的小伙伴 目标:通过MAC电脑使用flutter框架开发一款适用于苹果手机的一个APP应用 本博客的阅读顺序是…...
万宾科技可燃气体监测仪的功能有哪些?
随着城市人口的持续增长和智慧城市不断发展,燃气作为一种重要的能源供应方式,已经广泛地应用于居民生活和工业生产的各个领域。然而燃气泄漏和安全事故的风险也随之增加,对城市的安全和社会的稳定构成了潜在的威胁。我国燃气管道安全事故的频…...
Binlog vs. Redo Log:数据库日志的较劲【高级】
🎏:你只管努力,剩下的交给时间 🏠 :小破站 Binlog vs. Redo Log:数据库日志的较劲【高级】 前言第一:事务的生命周期事务的生命周期Binlog和Redo Log记录事务的一致性和持久性Binlog的记录过程R…...
移动机器人路径规划(二)--- 图搜索基础,Dijkstra,A*,JPS
目录 1 图搜索基础 1.1 机器人规划的配置空间 Configuration Space 1.2 图搜索算法的基本概念 1.3 启发式的搜索算法 Heuristic search 2 A* Dijkstra算法 2.1 Dijkstra算法 2.2 A*&&Weighted A*算法 2.3 A* 算法的工程实践中的应用 3 JPS 1 图搜索基础 1.1…...
消息中间件——RabbitMQ(四)命令行与管控台的基本操作!
前言 在前面的文章中我们介绍过RabbitMQ的搭建:RabbitMQ的安装过以及各大主流消息中间件的对比:,本章就主要来介绍下我们之前安装的管控台是如何使用以及如何通过命令行进行操作。 1. 命令行操作 1.1 基础服务的命令操作 rabbitmqctl sto…...
性能压测工具:wrk
一般我们压测的时候,需要了解衡量系统性能的一些参数指标,比如。 1、性能指标简介 1.1 延迟 简单易懂。green:一般指响应时间 95线:P95。平均100%的请求中95%已经响应的时间 99线:P99。平均100%的请求中99%已经响应的时间 平…...
[Matlab有限元分析] 2.杆单元有限元分析
1. 一维杆单元有限元分析程序 一维刚单元的局部坐标系(单元坐标系)与全局坐标系相同。 1.1 线性杆单元 如图所示是一个杆单元,由两个节点i和j,局部坐标系的X轴沿着杆的方向,由i节点指向j节点,每个节点有…...
透过对话聊天聊网络tcp三次握手四次挥手
序 说起来网络,就让我想起的就是一张图。我在网上可以为所欲为,反正你又不能顺着网线来打我。接下来我们来详细说一下网络到底是怎么连接的。 TCP三次打招呼 首先我会用男女生之间的聊天方式,来举一个例子。 从tcp三次握手来说,…...
项目管理套路:看这一篇绝对够用❤️
写论文必不可少的,就是创建代码并进行实验。好的项目管理可以让实验进行得更加顺利。本篇博客以一次项目实践为例,介绍项目管理的方法,以及可能遇到的问题,并提供一些可行的解决方案。 目录 项目管理工具开始第一步版本管理十分关…...
华为-算法---测试开发工程师----摘要牛客网
Java面试题---摘要牛客网-CSDN博客package extendNiuKeWang;import java.util.Scanner;public class GoodHuaWei {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int money = sc.nextInt();System.out.println("n值总金额:"+money)…...
python环境搭建-yolo代码跑通-呕心沥血制作(告别报错no module named torch)
安装软件 安装过的可以查看有没有添加环境变量 好的! 我们发车! 如果你想方便快捷的跑通大型项目,那么必须安装以下两个软件: 1.pycharm2.anaconda对应作用: pycharm:专门用来跑通python项目的软件,相当于一个编辑器,可以debug调试,可以接受远程链接调试!anaconda:专…...
Cisco Packet Tracer配置命令——路由器篇
路由基础 路由器用于互联两个或多个网络,具有两项功能:为要转发的数据包选择最佳路径以及将数据包交换到正确的端口,概括为路由选择和分组转发。 路由选择 路由选择就是路由器根据目的IP地址的网络地址部分,通过路由选择算法确…...
setContentsMargins(QMargins()) 是 QWidget 类的成员函数,用于设置小部件的内容边距(Contents Margins)
setContentsMargins(QMargins()) 是 QWidget 类的成员函数,用于设置小部件的内容边距(Contents Margins)。 在 Qt 中,内容边距指的是小部件内部内容与小部件边界之间的空白区域。通过设置内容边距,可以控制和调整小部…...
Redis key 过期监听实现
1.技术背景,想知道 redis 设置了TTL时间的key 过期,且有后续的业务处理的场景可以使用。 bug点: 使用redis 缓存失效监听会有一定的延迟, 过期事件是在redis服务器删除键的时候生成的,而不是在理论上生存时间到达0值得…...
Gee教程2.上下文Context
先来看看Gin框架的简单例子 func main() {engine : gin.Default()engine.GET("/", func(c *gin.Context) {c.String(http.StatusOK, "hello World!")})//监听并启动服务,默认 http://localhost:8080/engine.Run() }//我们自己写的 func main()…...
【从浅识到熟知Linux】基本指定之cat、more和less
🎈归属专栏:从浅学到熟知Linux 🚗个人主页:Jammingpro 🐟每日一句:写完这篇我要去吃晚饭啦!! 文章前言:本文介绍cat、more和less指令三种查看文件的用法并给出示例和截图…...
2018年7月24日 Go生态洞察:Go Cloud实现便携式云编程
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…...
通俗易懂讲PIC单片机:从一窍不通到入门进步
单片机入门不难------谈PIC系列(转自矿石收音机论坛---崂山)十年前的老帖子,讲得通俗易懂,分享之。 请看图 这个8条腿的小螃蟹就是我们的第一顿饭,只要把它吃下去,以后的大餐就好办了。 第1、8条腿接电源 +5V 和 地线。头两条腿是螃蟹钳子,好吃的很。 现在剩下了 6…...
Waza:将工程师习惯转化为Claude可执行技能的革命性平台
Waza:将工程师习惯转化为Claude可执行技能的革命性平台 【免费下载链接】waza 🥷 Engineering habits you already know, turned into skills Claude can run. 项目地址: https://gitcode.com/gh_mirrors/cl/waza Waza是一个创新的平台࿰…...
算法的时间和空间复杂度
1算法效率主要取决于时间和空间,一般从时间和空间衡量一个算法的好坏2时间复杂度算法的时间复杂度是一个函数,算法基本的执行次数,为算法的时间复杂度。对于时间复杂度的计算,我们采用大O的渐进表示法。大O渐进表示法1用常数1取代…...
别再乱选工业镜头了!手把手教你根据海康相机靶面、工作距离和畸变选对FA镜头
工业镜头选型实战指南:从靶面尺寸到畸变控制的完整决策框架 第一次接触工业镜头选型时,我被参数表上密密麻麻的数字弄得晕头转向——焦距、光圈、靶面尺寸、工作距离,每个参数看起来都很重要,但组合起来却像一团乱麻。直到在一次P…...
大模型推理延迟突增2300ms?立刻检查这7个负载均衡配置陷阱(含Nginx+Kong+Traefik三框架避坑checklist)
第一章:大模型工程化负载均衡策略优化 2026奇点智能技术大会(https://ml-summit.org) 在大模型推理服务规模化部署中,传统轮询或随机调度策略常导致GPU显存碎片化、请求延迟抖动加剧及节点间负载严重失衡。工程化负载均衡需兼顾请求语义特征࿰…...
Synopsys工具链实战:如何用VCS、DC、ICC和Calibre跑通你的第一个数字IC设计项目?
Synopsys工具链实战:从RTL到GDSII的完整数字IC设计之旅 在芯片设计领域,Synopsys工具链如同一位精密配合的交响乐团指挥,将VCS、Design Compiler、ICC和Calibre等专业工具无缝衔接。本文将带您体验一个完整的设计周期——从最初的RTL代码到最…...
基于Python的科研管理系统毕业设计
博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在开发一款基于Python的科研管理系统,以实现科研项目管理、数据存储与分析、团队协作与沟通等功能。具体研究目的如下:提高科研项…...
Burpsuite之暴力破解+验证码识别 | 添柴不加火欣
springboot自动配置 自动配置了大量组件,配置信息可以在application.properties文件中修改。 当添加了特定的Starter POM后,springboot会根据类路径上的jar包来自动配置bean(比如:springboot发现类路径上的MyBatis相关类ÿ…...
从零到一:手把手教你搭建Doxygen自动化文档生成环境
1. 为什么你需要Doxygen自动化文档 第一次接手老项目代码时,看着密密麻麻的源文件却找不到函数调用关系,这种经历我太熟悉了。上周团队新来的实习生盯着屏幕发呆三小时,就为了理清一个模块的接口定义——这正是我们需要自动化文档工具的原因。…...
模型剪枝不是“砍参数”!12篇顶会论文验证的4类结构化剪枝失效场景,90%团队正在踩坑
第一章:大模型工程化中的模型剪枝技术 2026奇点智能技术大会(https://ml-summit.org) 模型剪枝是大模型工程化落地的关键压缩技术之一,旨在在保持推理精度基本不变的前提下,系统性地移除冗余参数或结构,从而显著降低模型体积、内…...
