【Python自动化测试】:文件上传和下载

自动化测试如何实现文件上传 标题自动化测试如何实现文件的上传 最近参加面试被问到自动化测试怎么实现文件的上传,当时只记得用send_keys加文件的绝对路径是可以实现的。回来度娘了一下,只用简单的input标签可以用,对于非input标签就要通过打开windows系统弹窗来实现了。 ... 阅读详情

文件的上传

  • 调用send_keys()方法上传文件
  • send_keys()的使用场景:
    • 上传文件使用input标签且type= file
  • 代码实现:
# 定位元素
element = driver.find_element()
# 元素调用send_keys方法,传入参数为要上传文件的地址
element.send_keys()
  • 【示例】
# 导包
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep

# 定义一个浏览器对象
driver = webdriver.Chrome()

# 定位到图片上传元素
element = driver.find_element(By.XPATH, '//*[@id="app"]/div/section/section/main/div/div[2]/div[1]/div/div/div[4]/div[1]/div/div[2]/form/div[9]/div/div[1]/div[1]/div/input')
# 对定位到的元素调用send_keys()方法即可实现文件上传
# 地址的最前面加上一个字母“r”,可以使得反斜杠\不起到转义功能
element.send_keys(r'C:\Users\Olivia\Pictures\300-300\22.gif')

# 为方便看清楚上传效果,页面停留5秒钟
sleep(5)
# 退出浏览器
driver.quit()

文件的下载

图片下载

实现步骤

  1. 打开图片存在的页面
  2. 在页面中定位到该图片元素
  3. 使用element.attribut('属性名')方法获取src属性的属性值,即为图片的存放地址url
  4. 调用reqests.get(url)方法获取图片数据(图片数据为二进制数据);若获取数据为二进制,则需要reqests.get(url).content;若获取数据为文件类型,则需要reqests.get(url).text
  5. 保存文件到本地

【示例】:下载百度首页的logo图片

# 导包
from selenium import webdriver
from selenium.webdriver.common.by import By
# 导入请求包
import requests

driver = webdriver.Chrome()
# 打开百度首页
driver.get('https:www.baidu.com')
# 定位到百度logo图片
logo_element = driver.find_element(By.ID, 's_lg_img')
# 获取该元素的src属性的值,也即要获取图片的存放地址
logo_url = logo_element.get_attribute('src')
# 请求图片存取地址获取图片数据
# response.txt获取文件数据;response.content获取二进制数据
datas = requests.get(logo_url).content

# 将图片内容保存到本地
# wb表示写入二进制文件
with open(r'E:\123\baidu.png', 'wb') as file:
    file.write(datas)

文件的下载

示例

# selenium文件下载
# 导包
import os
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By

# 实例化一个ChromeOptions类的对象
options = webdriver.ChromeOptions()

# 设置打开浏览器时需要添加的参数
param = {
    # 禁止浏览器弹出弹窗
    'profile.default_content_settings.popups': 0,
    # 设置浏览器默认下载路径
    # os.getcwd()获取当前路径
    'download.default_directory': os.getcwd()
}
# 给浏览器添加属性
options.add_experimental_option('prefs', param)
# 创建一个谷歌浏览器对象
driver = webdriver.Chrome(options=options)
# 打开要下载文件的页面
driver.get('https://pypi.org/project/selenium/#files')
# 定位到要下载的文件元素
element= driver.find_element(By.LINK_TEXT, 'selenium-4.8.2.tar.gz')
# 点击该元素进行下载操作
element.click()

sleep(3)
driver.quit()

Selenium基础 — 文件上传&文件下载 这个大纲涵盖了目前市面上企业百分之99的技术,这个大纲很详细的写了你该学习什么内容,企业会用到什么内容。世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。添加附件,就是上传文件。绝对路径和相对路径都可以,关键是上传的文件存在。这里我准备了对应上面的每个知识点的学习资料、可以自学神器,已经项目练手。文件上传是web页面上很常见的一个功能,用脚本去实现文件上传很简单。实现下载文件功能,只需要配置一下浏览器的参数即可实现。2.是否提示安全警告。 阅读详情

相关推荐

python:自动化测试 playwright 库上传和下载

今天主要是聊聊playwright中的上传和下载操作,playwright中的上传和下载比selenium的上传和下载要简便些,例:selenium中的上传还要有对话框选择文件,再点击上传,而playwright中是找到元素执行点击后设置一个文件位置。 上传 操作语法 #选择一个文件 page.set_input_files('input#upload','myfile.pdf') #选择多个文件 page.set_input_files('input#upload',['file1.t...

weixin_54556126的博客 3610

python_web端自动化上传文件

在使用selenium做web自动化的过程中,我们会遇到文件上传的功能,但是通过selenium是没有办法实现的,因为selenium无法对文件上传弹出窗口中的相关元素进行定位。那我们应该怎么解决这个问题了,下面文章会介绍如何通过pywinauto模块上传文件。

檬柠wan 3904

进阶实战,接口自动化测试——requests文件上传/下载实战代码

如果需要发送文件到服务器,比如上传图片、视频等,就需要发送二进制数据。一般上传文件使用的都是 Content-Type: multipart/form-data;数据类型,可以发送文件,也可以发送相关的消息体数据。文件上传操作步骤POST一个多部分编码(Multipart-Encoded)的文件:使用 requests 上传文件的基本步骤构造文件数据,通过 open 函数以二进制方式打开文件构造相关数据。

测试人,要卷就卷成最强的! 709

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

说明:如果不是input标签,直接是div标签,则不能使用上述方法,也不能使用selenium中的(拖拽方法)drag_and_drop(value1,value2),因为文件夹中的文件,是window操作,不是浏览器中的元素,无法定位。步骤:1、下载pywinauto包------pip install pywinauto。步骤3:打开窗口>>>输入文件地址>>>点击打开按钮就行了,请看具体代码.方法:和用户输入是一样的,使用send_keys。

qq_43371695的博客 239

从软体机器人到鞋垫分析:Abaqus超弹性材料(Ogden模型)仿真配置全流程

本文详细介绍了Abaqus中Ogden模型在超弹性材料仿真中的应用全流程,涵盖从实验数据导入、参数拟合到模型构建与求解优化的关键步骤。特别针对鞋垫分析等生物力学场景,提供了单元选择、接触设置和并行计算等实用技巧,帮助工程师实现高精度仿真分析。

weixin_42525385的博客 400

卡门涡街可视化实战:从网格加密策略到动画后处理技巧

本文详细介绍了利用ANSYS Fluent进行卡门涡街可视化模拟的全流程,包括网格加密策略、求解器设置、涡街捕捉及动画后处理技巧。通过计算流体力学(CFD)方法,帮助工程师和研究人员高效模拟圆柱绕流现象,优化工程设计。

weixin_29309785的博客 414

python+selenium的web自动化之针对上传操作的实现方案

​ 上传有两种情况:如果是input可以直接输入路径的,那么直接使用send_keys(文件路径)输入路径即可;非input标签的上传,则需要借助第三方工具:第三方库 pywin32、第三方工具pyautogui等等。

软件自动化测试技术交流、资源分享 2915

版电力系统故障录波_故障录波识图与典型故障波形分析

1、设置故障录波的目的故障录波装置是对电力系统运行状况进行监控的一种自动化设备。系统正常运行时,录波装置不启动录波,当系统发生故障时,通过启动录波装置迅速启动录波器录波,直接记录反应故障装置安装处系统故障的电气量。2、故障录波的作用(1)正确评价继电保护和自动装置的工作。(2)正确分析事故的原因并研究防止对侧。(3)发现继电保护和自动装置缺陷。(4)发现一次设备缺陷,及时消除隐患。(5)帮助寻找故...

weixin_42495661的博客 1万+

用Python的requests库实现自动上传文件

抓取接口,分析出接口出入参,通过读取Excel里的数据,用Python的requests库来调用接口传入。

weixin_46157924的博客 6288

五分钟搞懂游戏开发中的抗锯齿算法

常见抗锯齿算法总结锯齿由来抗锯齿算法SSAAMSAACSAA 锯齿由来 场景的定义在三维空间中是连续的,而最终显示的像素则是一个离散的二维数组,这是计算机屏幕产生锯齿的原因。在计算机处理图形的过程中(渲染管线了解一下),有一个非常重要的阶段,就是光栅化,光栅化主要的作用是将顶点数据的不连续性通过插值计算,将两个顶点之间不存在的点进行弥补,然后实现到屏幕像素点上的一一映射。如图,现在要在屏幕上绘制一...

绿洲守望者 1万+

C#程序突然崩溃怎么办?5分钟学会分析Dump文件(Visual Studio 2022实战)

本文详细介绍了在C#程序崩溃或无响应时,如何捕获并分析Dump文件以快速定位问题。通过Visual Studio 2022实战演示,重点讲解了配置符号服务器、解读调用堆栈与内存状态,以及针对CPU飙高、内存泄漏等典型场景的分析方法,帮助开发者高效进行故障诊断。

docker8compose的博客 474

Python写FTP文件自动传输脚本

FTP(File Transfer Protocol)是一种用于文件传输的标准协议,当我们需要上传或下载文件时,经常会使用 FTP。如果每天需要上传或下载大量文件,手工操作无疑是一件费时费力的事情。在本篇文章中,我们将向您介绍如何使用 Python 编写 FTP 自动化脚本,让文件传输更简单。

主要分享测试的学习资源,帮助快速了解测试行业,帮助想转行、进阶、小白成长为高级测试工程师。 1271

rk3588 Android HDMI IN热插拔解决

1、公司在使用 别的厂商的板卡遇到一个问题,开机我们的app自启就会闪退,后来定位发现是camera 的open出错了,这个问题的出现是因为没有插HDMI IN输入的问题导致的,所以需要对HDMI IN的热插拔进行检测,后面我把这个问题也顺利解决了。下面是我的尝试和使用的解决办法。3、话不多说,我用的是读取系统文件实现的,但是这个方法,需要有status文件的系统读权限,可以修改设备下的/vendor/etc/init/hw/init.rk3588.rc文件修改的权限,这个问题交给自己或者厂家协商解决。

qq_54089476的博客 1919

测试文件上传_Selenium界面自动化测试(8)(Python):文件上传和下载

在Web测试中经常会遇到文件上传和下载,但遗憾的是Selenium对文件上传和下载的支持度均不够好。1. 文件上传对于文件上传,最常见的是multipart/form-data方式提交文件。这种方式对应的HTML标签为,且其type属性值为file,可直接使用send_keys方法将文件路径作为参数传递:driver.find_element_by_css_selector('input...

weixin_39906114的博客 169

OneNet平台MQTT连接避坑指南:C语言Token计算实战(附完整代码)

本文详细解析了OneNet平台MQTT连接中的Token计算机制,提供了C语言实现的完整代码和实战指南。通过HMAC算法和Base64编码,开发者可以高效生成安全凭证,避免常见连接问题,适用于物联网设备开发。

weixin_29193359的博客 462

【系统架构设计师】二十三、通信系统架构设计理论与实践①

通信网络主要形式:局域网、广域网、移动通信网。 局域网网络架构有 4 种类型:单核心架构、双核心架构、环型架构、层次型架构。 广域网属于多级网络,通常由骨干网、分布网、接入网组成。在网络规模较小时,可仅由骨干网和接入网组成。通常,在大型网络构建中,通过广域网将分布在各地域的局域网互连起来,形成一个大的网络。 移动通信网为移动互联网提供了强有力的支持,尤其是5G 网络为个人用户、垂直行业等 提供了多样化的服务。

帅次的博客 3763

Selenium:设置元素等待、上传文件、下载文件

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

huace3852的博客 588

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

c语言怎么加header文件,Header头文件原型C语言.doc

/*alloc.hmemory management functions and variables.*/#if __STDC__#define _Cdecl#else#define _Cdeclcdecl#endif#ifndef _STDDEF#define _STDDEF#ifndef _PTRDIFF_T#define _PTRDIFF_T#ifdefined(__LARGE__) || ...

weixin_42298209的博客 989

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Python+requests之文件上传与下载

在做接口自动化测试中,经常会遇到文件的上传和下载接口 文件上传 一般上传文件使用的都是Content-Type: multipart/form-data;数据类型,可以发送文件,也可以发送相关的消息体数据。 使用 requests 上传文件的基本步骤: 1.构造文件数据,通过 open 函数以二进制方式打开文件 2.构造相关数据 3.发送请求,将文件数据以 files 参数传入,其他消息体数据通过 data或 json 传入 参考官方文档 >>> url = 'http:/

SitVen 9294

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

接口自动化测试——文件上传/下载

文件上传/下载接口与普通接口类似,但是有细微的区别。如果需要发送文件到服务器,例如:上传文档、图片、视频等,就需要发送二进制数据,上传文件一般使用的都是数据类型,可以发送文件,也可以发送相关的消息体数据。反之,文件下载就是将二进制格式的响应内容存储到本地,并根据需要下载的文件格式来写文件名,例如:F:/caituotuo-file.pdf。

2201_76100073的博客 928

Python+selenium 文件上传和下载弹窗处理

个人博客 input标签文件上传 带有input标签并且type属性的值为file可直接使用send_keys方法上传文件 upload.html文件 <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <title>uploa...

SitVen 9957

接口自动化测试:文件上传/下载

我们在做接口自动化测试的时候,经常会碰到文件上传接口和文件下载接口。那么,文件接口跟普通接口有什么区别呢?又该如何实现呢?文件上传/下载接口与普通接口类似,但是有细微的区别。如果需要发送文件到服务器,例如:上传文档、图片、视频等,就需要发送二进制数据,上传文件一般使用的都是 Content-Type: multipart/form-data 数据类型,可以发送文件,也可以发送相关的消息体数据。

HUA6911的博客 549

Playwright Python文件上传下载:自动化文件操作完整指南

还在为Web自动化测试中的文件上传下载头疼吗?Playwright Python提供了强大而灵活的文件操作API,让文件上传下载变得简单高效。本文将带你全面掌握Playwright Python在文件操作方面的所有技巧和最佳实践。 ## ???? 你将学到什么 - ✅ 文件上传的多种方法与实践 - ✅ 文件下载的完整流程与控制 - ✅ 同步与异步API的使用区别 - ✅ 实际项目中的最佳实践方案 ...

gitblog_00227的博客 1150
上一篇: 【Python自动化测试】:单选框、复选框与下拉框操作
下一篇: 【Python自动化测试】:屏幕截图
Lucifer__hell
博客等级 码龄8年 53粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值