如何优雅的搞定自动化测试的文件上传?

2023-11-01

在这里插入图片描述
在做web自动化时会碰到文件上传的实现功能,这个时候我们应当如何使用selenium进行文件的上传呢?

一,标签类型为input,直接selenium直接上传

我们在做selenium自动化时,必须要面临的就是页面元素的定位,如果该上传文件功能的标签类型为input,例如:

以上类型的上传文件功能吗,我们可以直接使用selenium中的元素定位+send_keys()方法,括号内传入文件路径,例如:

driver.find_element_by_xpath("").send_keys(r"c:/test.png")

以上是针对于元素类型为input可直接使用selenium上传。

二,标签类型非input,借助工具AutoIT上传

AutoIT介绍:AutoIT是一个类似脚本语言的软件,可对鼠标,键盘,窗口等进行定位及操作,将其编写成一个文件,然后转化为电脑可执行的exe文件。

下载地址:https://www.autoitscript.com/site/autoit/

安装autoit后可在电脑所有程序中找到:

在这里插入图片描述

**AutoIt Window Info :**然后打开页面元素上传控件,使用autoit window info进行定位

在这里插入图片描述

可看到定位此控件相关信息为:Title=“打开”,Class为Button,Instance=1,class的坐标为#32770。我们就是利用控件的这些信息,定位控件,编写脚本。

SciTE Script Editor

在这里插入图片描述

在所有程序中搜索SciTE Script Editor,打开软件,在里面编辑相关控件内容:

**ControlFocus :**设定聚焦到某个窗口的某个控件上

**WinWait:**设定超时时间,直到某个元素坐标出现

**ControlSetText:**修改指定控件的文本信息,添加上传文件的路径

**ControlClick :**向鼠标发起指令进行操作控件

**sleep:**设置等待时间

ControlFocus("打开","","Edit1")

;识别windows窗口

WinWait("[CLASS:#32770]","",10)

;窗口等待十秒

ControlSetText("打开", "", "Edit1", "C:\User\sergou\Desktop\picture\1.png")

;向输入框中输入需要上传的地址 

Sleep(2000)

ControlClick("打开", "","Button1");

;点击[打开】按钮

Python软件测试自动化测试交流群:810119819 软件测试,与你同行!

脚本编写完成后,可以通过菜单栏“Tools”–>“Go” 运行一下脚本进行调试查看效果。注意,运行的时候,上传窗口需处于打开状态。

Complie Script to .exe
在电脑所有程序中找到Complie Script to .exe软件,对以上编辑保存的文本进行转译成电脑可执行的exe文件

在这里插入图片描述

在这里插入图片描述

点击browse选择保存的文本,点击convert转译生成一个exe可执行文件,以上即是使用autoit进行文件上传的流程。

python+selenium+autoit
接下来我们需要结合web自动化,如何使用python+selenium+autoit进行文件的上传。
在这里插入图片描述

以上代码可得知,我们需要先定位上传空间元素并点击,然后使用python中的os.system()方法执行我们提前准备好的exe文件,这样既可实现文件上传的功能!

三,通过接口请求,轻松实现文件上传功能自动化

自动化测试过程中,有些特定的业务场景,如果通过UI自动化非常难实现,可以通过接口结合UI自动化,满足自动化测试场景需求

比如上传文件,虽然通过selenium或Autoit能实现,但是建议文件上传类型的自动化通过调用文件上传接口,轻松实现自动化

如图所示:postman调用文件上传接口
在这里插入图片描述

那么,通过python+request同样可以轻松实现文件上传功能接口自动化
在这里插入图片描述

最后:更多的资料可以加入我们
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何优雅的搞定自动化测试的文件上传? 的相关文章

  • 测试工程师能否作为一份「终身职业」?30岁+怎么办?

    讨论 测试工程师可否作为一份终生的职业 这是我在论坛看到的一个讨论 你的答案是什么呢 我希望大家能认真思考后给出一个属于自己的答案 无论你是新手入门 还是资深专家 回答这个问题请不要凭一腔热血 也不用过分消极 别总和钱挂钩 平心而论即可 就
  • 测试开发必知:有Tomcat,为什么还要Nginx?

    只用Tomcat 不用Nginx搭建Web服务 行不行 我曾经提出的愚蠢问题 今天详细给自己解释下 为什么必须用Nginx 不用Nginx 只用Tomcat的Http请求流程 浏览器处理一个Http请求时 会首先通过DNS服务器找到域名关联
  • 微信小程序的自动化测试框架

    微信发布了小程序的自动化测试框架Minium 提供了多种运行验证方式 其特点 支持一套脚本 iOS Android 模拟器 三端运行 提供丰富的页面跳转方式 看不到也能去得到 可以获取和设置小程序页面数据 让测试不止点点点 可以直接触发小程
  • 软件测试|Pydantic详细介绍与基础入门

    简介 Pydantic 是一个强大的 Python 库 用于数据验证和解析 特别是用于处理 JSON 数据 它的主要目标是使数据验证和解析变得简单 直观和可维护 本文将介绍 Pydantic 的基础知识 包括如何定义模型 验证数据以及处理错
  • 软件测试|使用Python轻松裁剪视频

    简介 裁剪视频是在视频编辑和处理中常见的任务之一 Python提供了多种库和工具 可以用来裁剪视频 在本文中 我们将详细讨论如何使用Python来裁剪视频 并提供示例代码 步骤1 环境准备 首先 我们要安装必要的Python库 我们将使用
  • 软件测试|深入了解Python中的super()函数用法

    简介 Python中的super 函数是一种强大的工具 用于在子类中调用父类的方法 它在面向对象编程中非常有用 可以让你轻松地扩展和重用现有的类 本文将详细介绍super 函数的用法 并提供一些示例来帮助你更好地理解它的功能 什么是supe
  • 软件测试|Python中如何提取列表中索引为奇数的元素

    简介 在Python中 我们经常需要从列表中提取特定位置的元素 如果我们想要提取列表中索引为奇数的元素 可以使用一些简单的方法来实现这一目标 本文将介绍如何在Python中提取列表中索引为奇数的元素 并提供示例代码来帮助大家更好地理解这个过
  • 软件测试|SQLAlchemy环境安装与基础使用

    简介 SQLAlchemy 是一个强大的 Python 库 用于与关系型数据库进行交互 它提供了高度抽象的对象关系映射 ORM 工具 允许使用 Python 对象来操作数据库 而不必编写原生SQL查询 本文将介绍如何安装 SQLAlchem
  • 软件测试|sqlalchemy relationship

    简介 SQLAlchemy是一个流行的Python ORM 对象关系映射 库 它允许我们以面向对象的方式管理数据库 在SQLAlchemy中 relationship 是一个重要的功能 用于建立表之间的关系 在本文中 我们将详细探讨 rel
  • 软件测试|Pydantic处理时间类型数据

    简介 我们之前介绍过使用 pydantic 验证数据 比如校验数据的格式等 但是在我们的日常工作中 还有一种数据是需要我们验证的 比如时间数据 时间数据不同于字符串 列表等数据 与他们的验证不一样 本文就来为大家介绍一下 pydantic
  • 软件测试|pycharm关联GitHub的详细步骤

    简介 GitHub 是全球最大的开源代码托管平台之一 而 PyCharm 是一款强大的 Python 集成开发环境 将两者结合使用 可以提高团队协作和代码管理的效率 本文将详细介绍如何在 PyCharm 中管理 GitHub 账号 包括如何
  • 盲猜你不懂H5架构和原生架构的区别

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 摸爬滚打多年的打工人,总结了三条职场真理,绝不假大空!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 开眼了,自动化测试还能这样用?

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 探索自动化测试断言:提升测试效率与质量的关键!

    前言 断言在自动化测试中起着关键的作用 它是验证测试结果是否符合预期的重要手段 如果在自动化测试过程中忽视了断言 那么这个测试就失去了其本质的意义 因为我们无法得知测试结果是否达到了预期的效果 因此 断言在自动化测试中的重要性不言而喻 那么
  • 2024拒绝行业内卷!八年软件测试20K*16薪行业心得 想入行必看

    目前工作做软件测试工作8年 属于高级测试员那个级别吧 现在看到各行各业的人都在转行学习软件测试 想给大家一些学习建议和忠告 很多粉丝都跟我说今年行情很差 找不到工资 真的找不到工作了吗 我们常在网上看到的 程序员饱和 程序员过剩 其实一般是
  • Web自动化测试 —— cookie复用

    一 cookie简介 cookie是一些数据 存储于用户电脑的文本文件中 当web服务器想浏览器发送web页面时 在链接关闭后 服务端不会记录用户信息 二 为什么要使用Cookie自动化登录 复用浏览器仍然在每次用例开始都需要人为介入 若用
  • 外包干了3个月,技术退步明显。。。。。

    先说一下自己的情况 本科生 20年通过校招进入广州某软件公司 干了接近3年的 功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了3年的功能测试 已经让我变得不思进取 谈了2年的女朋
  • 一文从0到1手把手教学UI自动化测试之数据驱动!

    在UI的自动化测试中 我们需要把测试使用到的数据分离到文件中 如果单纯的写在我们的测试模块里面 不是一个好的设计 所以不管是什么类型的自动化测试 都是需要把数据分离出来的 当然分离到具体的文件里面 文件的形式其实有很多的 这里主要说明JSO
  • 用Python实现高效数据记录!Web自动化技术助你告别重复劳动!

    自动化关键数据记录 简介 关键数据记录是 Web 自动化测试中的关键部分 它们提供了关于系统行为和执行过程的详细信息 有助于验证用例的正确性 排查问题和确保应用程序的质量 行为日志 行为日志是一种用于记录系统或应用程序的操作和事件的技术 它

随机推荐

  • Thinkphp最新版本漏洞分析

    环境 Thinkphp6 0 12LTS 目前最新版本 PHP7 3 4 安装 composer create project topthink think tp6 测试代码 漏洞分析 漏洞起点不是 desturct就是 wakeup全局搜
  • 用sublime搭建基于GoSublime+gocode+MarGo的下载SublimeGO开发环境

    1 下载 Sublime 2 打开之后安装 Package Control Ctrl 打开命令行 执行如下代码 1 import urllib2 os pf Package Control sublime package ipp subli
  • git ssh配置、密钥创建

    1 删除 C Users 用户名 ssh文件夹下所有文件 2 创建SSH ssh keygen t rsa C 15198299634 163 com 邮件需要改成你自己的邮件 3 在 ssh目录 里面有id rsa和id rsa pub两
  • C#各种命名缩写

    基本类型 数据类型缩写 string str int i char chr sbyte sb byte bt uint ui long l ulong ul float f double d bool b decimal dec A
  • Pandas常用函数大合集

    来源 机器之心 本文约3000字 建议阅读5分钟 pandas 是 python 成为出色的编程语言的原因之一 Python 是开源的 它很棒 但是也无法避免开源的一些固有问题 很多包都在做 或者在尝试做 同样的事情 如果你是 Python
  • 记录Linux系统Cloudflare Tunnel隧道使用Cli方式配置

    官网文档 Via the command line Cloudflare Zero Trust docs 安装cloudflared 1 deb 方式安装 wget q https github com cloudflare cloudfl
  • Cpp学习——通过日期类来了解Cpp中的运算符重载

    目录 一 日期类 二 运算符重载 运算符重载1 比较 1 lt 2 复用 3 gt 4 5 lt 6 gt 运算符重载2 日期加减 0 准备条件 计算每月的日期函数 1 2 3 4 5 前置 6 后置 7前置 6 后置 7 计算两个日期的相
  • 期货小资金怎么做大(期货小资金怎么做大基金)

    小资金怎样就可以在期货市场长期存活 我个人认为小资金需要尽可能让杠杆低一些 甚至根本就不要去碰期货市场 从某种程度上来说 期货市场的存活时间跟资金大小并没有什么关系 反而会跟资金杠杆有很大的关系 如果一个人的期货杠杆非常高的话 即便这个人的
  • 【react练习】受控组件和非受控组件、获取form表单信息、阻止事件默认行为

    同样整理自尚硅谷的视频 视频链接 https www bilibili com video av51174155 from search seid 11218837597275325699 另 想投转载来着 可原文链接怎么也填不对 需求 自
  • pip与conda指定版本安装的使用区别

    1 pip安装 pip install keras 2 1 1 即可安装指定的2 1 1版本的keras 2 conda安装 conda install keras 2 1 2 注意两者的区别在于等号的数量 pip有两个等号 conda用一
  • nodejs 基于token的身份验证

    nodejs 基于token的身份验证 最近接到一个需求 要求实现免密登陆 就是基于token实现的 于是就研究了下基于token验证身份的流程 传统基于服务器的验证方式 传统的验证方式是基于服务器的 就是把登陆信息存在服务端 每次登陆需要
  • Error Connecting to Substrate Front-End Template when connecting remotely远程连接时连接到 Substrate 前端模板时出错

    我正在这里尝试本教程中的基板安装和构建链 https substrate dev docs en tutorials create your first substrate chain interact 我在节点模板上做了cargo bui
  • springboot 报错处理(长期更新 2023.8.11)

    目录 一 HTTP 相关 1 1 数据传输方面 1 1 1 HttpMessageNotWritableException 1 1 1 1 springboot stomp 场景 1 1 2 org springframework mess
  • 论文笔记:Deep Learning [nature review by Lecun, Bengio, & Hinton]

    如今 机器学习的技术在我们的生活中扮演着越来越重要的角色 从搜索引擎到推荐系统 从图像识别到语音识别 而这些应用都开始逐渐使用一类叫做深度学习 Deep Learning 的技术 传统机器学习算法的局限性在于 它们往往很难处理那些未被加工过
  • Linux:入门学习知识及常见指令

    文章目录 入门介绍 操作系统的概念 Linux机器的使用 Linux上的指令 对文件知识的补充 文件的定义和一些含义 文件和目录的存储 绝对路径和相对路径 ls指令 pwd指令 cd指令 touch指令 mkdir指令 rmdir指令 rm
  • 嵌套循环以及break和continue

    嵌套循环试验 打印九九表 row 1 line 1 while row lt 9 line 1 while line lt row print f line row row line end line 1 print row 1 break
  • USB2.0协议分析

    前言 为了方便查看博客 特意申请了一个公众号 附上二维码 有兴趣的朋友可以关注 和我一起讨论学习 一起享受技术 一起成长 一 USB硬件介绍 1 1 概述 一条USB传输线分别由地线 电源线 D 和D 四条线构成 D 和D 是差分输入线 它
  • C ++ 数组

    目录 寻找最大 最小值 数组 寻找最大 最小值 对于这个编程测验 我们将找到用户将输入的15个数字的最小值和最大值以及平均值 include
  • FISCO BCOS Python SDK控制台使用

    控制台 常用命令 deploy 部署合约 console py deploy contract name save 参数包括 contract name 合约名 需要先放到contracts目录 save 若设置了save参数 表明会将合约
  • 如何优雅的搞定自动化测试的文件上传?

    在做web自动化时会碰到文件上传的实现功能 这个时候我们应当如何使用selenium进行文件的上传呢 一 标签类型为input 直接selenium直接上传 我们在做selenium自动化时 必须要面临的就是页面元素的定位 如果该上传文件功