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

news2024/9/23 18:26:56

文件上传三种方式:

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

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

1

2

3

4

5

步骤:1、找到定位元素,2,输入文件路径

ele=driver.find_element_by_id("id")

#说明:参数是文件的路径,在windows中,因为路径是反斜杠,所以在路径之前需要有r

ele.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:打开窗口>>>输入文件地址>>>点击打开按钮就行了,请看具体代码.

具体代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

import pywinauto

from 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跨平台

1

使用pyautogui跨平台

1

2

3

4

5

6

7

8

9

10

11

12

13

pip install pillow==6.2.2

pip insall pyautogui

time.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键,防止出错

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

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

在这里插入图片描述

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

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

相关文章

ICCV2021 Exploring Cross-Image Pixel Contrast for Semantic Segmentation (Oral)

Exploring Cross-Image Pixel Contrast for Semantic Segmentation 探索语义分割的跨图像像素对比度 Paper&#xff1a;https://openaccess.thecvf.com/content/ICCV2021/html/Wang_Exploring_Cross-Image_Pixel_Contrast_for_Semantic_Segmentation_ICCV_2021_paper.html Co…

k8s 入门到实战--部署应用到 k8s

k8s 入门到实战 01.png 本文提供视频版&#xff1a; 背景 最近这这段时间更新了一些 k8s 相关的博客和视频&#xff0c;也收到了一些反馈&#xff1b;大概分为这几类&#xff1a; 公司已经经历过服务化改造了&#xff0c;但还未接触过云原生。公司部分应用进行了云原生改造&…

Spring MVC拦截器

拦截器&#xff08;Interceptor&#xff09;是 Spring MVC 提供的一种强大的功能组件。它可以对用户请求进行拦截&#xff0c;并在请求进入控制器&#xff08;Controller&#xff09;之前、控制器处理完请求后、甚至是渲染视图后&#xff0c;执行一些指定的操作。 在 Spring MV…

springboot设置热部署

一、常见的三种方式&#xff1a; Springboot中常见的热部署方式有3种: 1.使用springloaded配置pom.xml文件&#xff0c;使用mvn spring-boot:run启动 2.使用springloaded本地加载启动&#xff0c;配置jvm参数 3.使用devtools工具包&#xff0c;操作简单&#xff0c;但是每次…

python开发基础篇1——后端操作K8s API方式

文章目录 一、基本了解1.1 操作k8s API1.2 基本使用 二、数据表格展示K8s常见资源2.1 Namespace2.2 Node2.3 PV2.4 Deployment2.5 DaemonSet2.6 StatefulSet2.7 Pod2.8 Service2.9 Ingress2.10 PVC2.11 ConfigMap2.12 Secret2.13 优化 一、基本了解 操作K8s资源api方式&#xf…

第11篇:ESP32vscode_platformio_idf框架helloworld点亮LED

第1篇:Arduino与ESP32开发板的安装方法 第2篇:ESP32 helloword第一个程序示范点亮板载LED 第3篇:vscode搭建esp32 arduino开发环境 第4篇:vscodeplatformio搭建esp32 arduino开发环境 ​​​​​​第5篇:doit_esp32_devkit_v1使用pmw呼吸灯实验 第6篇:ESP32连接无源喇叭播…

酷克数据推出AI开发工具箱HashML 加速企业级AI应用落地投产

近日&#xff0c;业界领先的国产企业级云数仓厂商酷克数据发布了下一代In-Database高级分析和数据科学工具箱HashML&#xff0c;在业内率先实现为企业提供随数仓部署一步到位、开箱即用的AI能力。 在数字经济时代&#xff0c;描述性分析已经非常成熟并被企业广泛采纳。然而&am…

vue3:3、项目目录和关键文件

关于vsvode的更改 <!-- 加上setup允许在script中直接编写组合式api --> <script setup> // 组件引入后直接用 import HelloWorld from ./components/HelloWorld.vue import TheWelcome from ./components/TheWelcome.vue</script><!-- 1、js放在最上面&am…

JDK源码剖析之PriorityQueue优先级队列

写在前面 版本信息&#xff1a; JDK1.8 PriorityQueue介绍 在数据结构中&#xff0c;队列分为FIFO、LIFO 两种模型&#xff0c;分别为先进先出&#xff0c;后进后出、先进后出&#xff0c;后进先出&#xff08;栈&#xff09; 而一切数据结构都是基于数组或者是链表实现。 在…

线上问诊:可视化展示

系列文章目录 线上问诊&#xff1a;业务数据采集 线上问诊&#xff1a;数仓数据同步 线上问诊&#xff1a;数仓开发(一) 线上问诊&#xff1a;数仓开发(二) 线上问诊&#xff1a;数仓开发(三) 线上问诊&#xff1a;可视化展示 文章目录 系列文章目录前言一、全流程调度1.生产新…

两两交换链表中节点

给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4] 输出&#xff1a;[2,1,4…

【python 多线程】初体验+单线程下载器+并行下载器

1.多线程初体验 主线程的id和进程的id是一个 查看进程pid下有多少个线程 ps -T -p pid(base) D:\code\python_project\python_coroutine>C:/ProgramData/Anaconda3/python.exe d:/code/python_project/python_coroutine/01demo.py threading.active_count1 i am producer…

vue手写提示组件弹窗

1、弹框展示 2、message组件 新建一个message.vue <template><div class"wrapper" v-if"isShow" :class"showContent ? fadein : fadeout">{{ text }}</div> </template> <script></script> <style s…

智能小车之跟随小车、避障小车原理和代码

目录 1. 红外壁障模块分析​编辑 2. 跟随小车的原理 3. 跟随小车开发和调试代码 4. 超声波模块介绍 5. 摇头测距小车开发和调试代码 1. 红外壁障模块分析 原理和循迹是一样的&#xff0c;循迹红外观朝下&#xff0c;跟随朝前 TCRT5000传感器的红外发射二极管不断发射红外…

使用半导体材料制作霍尔元件的优点

霍尔元件是一种基于霍尔效应的传感器&#xff0c;可以测量磁场强度和电流等物理量。霍尔效应是指&#xff0c;当电流通过一块导体时&#xff0c;如果该导体置于垂直于电流方向的磁场中&#xff0c;就会在导体两侧出现一定的电势差&#xff0c;这就是霍尔效应。霍尔元件可以利用…

亚马逊云科技与百川智能发起AI黑客松,共探医疗健康和游戏娱乐领域的前沿应用

8月31日&#xff0c;亚马逊云科技云创计划成员企业暨基础模型创业公司百川智能&#xff0c;率先通过了《生成式人工智能服务管理暂行办法》备案&#xff0c;即日起面向全社会开放服务。基础模型获准面向公众用户开放服务&#xff0c;意味着有机会基于大量真实用户的调用反馈建立…

Android使用Kotlin封装MMKVUtils

Android使用Kotlin封装MMKVUtils 1.简介&#xff1a; MMKV 是基于 mmap 内存映射的 key-value 组件&#xff0c;底层序列化/反序列化使用 protobuf 实现&#xff0c;性能高&#xff0c;稳定性强。从 2015 年中至今在微信上使用&#xff0c;其性能和稳定性经过了时间的验证。近…

【第二章 数据的表示和运算】2.3

IEEE规格化&#xff1a; 18&#xff08;阶码移码偏置值127&#xff0c;取值范围1-254&#xff0c;负值要补码取原码&#xff09;23&#xff08;隐1.原码&#xff09;

测试阶段之冒烟测试

冒烟测试 一般建议1-2个小时完成冒烟测试。 注意冒烟用例不是P1P2&#xff0c;而是其中的部分用例

yum安装mysql5.7散记

## 数据源安装 $ yum -y install wget $ wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm $ yum localinstall mysql57-community-release-el7-8.noarch.rpm $ yum repolist enabled | grep "mysql.*-community.*" $ yum install mysql-…