ui自动化中,几种文件上传整理2024

news2024/11/16 13:47:01

input标签的

对于input标签实现的文件上传,看成输入框,直接send_keys

非input标签的 

要使用第三方库:

方式1: pip install pypiwin32

要点:图片路径要写路径

方式2:pip install pyautogui

 方式3:pip install pywinauto(未尝试)

 

input标签和 非input标签上传文件演示代码


from selenium import webdriver
import time


# 创建浏览器驱动对象
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()            # 参数写浏览器驱动文件的路径,若配置到环境变量就不用写了
# 访问网址
driver.get("http://42.192.62.186:8088/index.html#/")
driver.maximize_window()
# 账号密码
driver.find_element(By.CSS_SELECTOR, '#username').send_keys('sq3')
driver.find_element(By.CSS_SELECTOR, '#password').send_keys('123')
driver.find_element(By.CSS_SELECTOR, '#code').send_keys('999999')

driver.find_element(By.CSS_SELECTOR,"#submitButton").click()
time.sleep(1)
driver.refresh()

"""input单文件上传"""
time.sleep(1)       # 刷新頁面有延迟
driver.find_element(By.XPATH,'//*[contains(text(),"文件上传")]').click()
time.sleep(1)       # 下拉框展开有延迟
driver.find_element(By.XPATH,'//*[contains(text(),"单文件上传")]').click()
time.sleep(1)       # 渲染页面有延时
driver.find_element(By.CSS_SELECTOR, '#cover').send_keys('E:\django\接口准备1\window.png')      # 直接 send_keys   只能是全路径
time.sleep(1.5)       # 页面渲染需要时间
driver.find_element(By.XPATH,'//*[contains(text(),"确认上传")]').click()

# 关闭弹窗,这个弹窗是个元素,定位到,点击即可
driver.find_element(By.CSS_SELECTOR,'.el-button--default').click()


"""非input单文件上传"""
driver.find_element(By.XPATH,'//*[contains(text(),"单文件上传(非input)")]').click()
time.sleep(1)
# 点击添加文件
driver.find_element(By.CSS_SELECTOR, '.el-icon-upload').click()
time.sleep(2)
# ---------------方式1--------------------
# import win32com.client
# sh = win32com.client.Dispatch("WScript.shell")
# sh.Sendkeys("E:\\app.png\r\n")
# ---------------方式1--------------------


# ---------------方式2------------------
import pyautogui
import pyperclip

# 1
pyperclip.copy('E:\\app.png')       # 将图片文件复制到剪贴板上
pyperclip.paste()
pyautogui.hotkey('ctrl','v')
# 2
# pyautogui.typewrite('E:\\app.png')            # 这个方式不稳妥了
time.sleep(3)   # 需要等一下,

# 模拟键盘操作
pyautogui.press('enter')
# ----------------方式2-----------------------------



# ----------------方式3
# from pywinauto.keyboard import send_keys

time.sleep(2)       # 上传需要时间
driver.find_element(By.XPATH,'//*[contains(text(),"确认上传")]').click()




# driver.close()
# driver.quit()         # 这个的效果就是离开整个浏览器




 

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

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

相关文章

Idea | Idea提交.properties文件乱码问题

这里 Transparent natice-to-ascii conversion 自动转换ASCII码 千万别勾选

ssm情侣购物系统-计算机毕业设计源码02387

目 录 摘要 1 绪论 1.1 开发背景与意义 1.2开发意义 1.3Vue.js 主要功能 1.3论文结构与章节安排 2 情侣购物系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分…

《吸血鬼猎人D》观后感

前言 在B站无意中发现了一部动漫电影《吸血鬼猎人D》,看着封面还不错,就试着点开了视频,看了一会儿,发现画面很精美,人物造型高大威猛,肌肉线条清晰可见。如果我没记错的话,这种风格在日本动漫中…

当我用AI写高考作文题目,你给打几分?

2024高考作文题目: 随着互联网的普及、人工智能的应用,越来越多的问题能很快得到答案。那么,我们的问题是否会越来越少?以上材料引发了你怎样的联想和思考?请写一篇文章。要求:选准角度,确定立…

uniapp条件编辑语法

uniapp中的“条件编译”:#ifdef详细解释_uniapp #ifdef-CSDN博客 uniapp 多端兼容 #ifdef #ifndef #endif 和 平台标识 - 简书

数据库选型实践:如何避开分库分表痛点 | OceanBase用户实践

随着企业业务的不断发展,数据量往往呈现出快速的增长趋势。使用MySQL的用户面对这种增长,普遍选择采用分库分表技术作为应对方案。然而,这一方案常在后期会遇到很多痛点。 分库分表的痛点 痛点 1:难以保证数据一致性。由于分库分…

ComfyUI 使用SD3

1 需要更新ComfyUI到最新版本,更新起来也非常方便 或者到目录下 git full即可 2 ComfyUI更新完成后,便是开始下载需要的模型和案例 https://huggingface.co/stabilityai/stable-diffusion-3-medium/tree/main 当然也可以网盘进行下载 SD3 百度网盘 模型下载链接 …

CV每日论文--2024.6.12

1、PGSR: Planar-based Gaussian Splatting for Efficient and High-Fidelity Surface Reconstruction 中文标题:PGSR:基于平面的高斯溅射,用于高效、高保真表面重建 简介:这项研究关注于3D高斯喷洒(3DGS)技术,该技术因其高质量渲…

实体(集)间的联系

在现实世界中实体集不是孤立存在的,它们之间的联系是错综复杂的,所以,在信息世界中不但要关心每一个实体集、属性,还要关心实体集之间的联系。联系分为两类:一类是实体内部的联系,反映的是一部分属性值与另一部分属性值之间的决定关系或依赖关系,即字段间的联系;另一类…

软件许可管理的关键要素

在数字化时代,软件已成为企业和个人日常运营和生活中不可或缺的一部分。然而,随着软件使用的普及,软件许可管理的重要性也日益凸显。有效的软件许可管理不仅能确保企业合法使用软件,还能帮助企业优化成本,提高运营效率…

百问网全志V853开发板启动方式及基础功能测试详解

开发板启动初体验 在后面的操作里,都是通过串口与板子进行“交流”。串口是串行接口的简称,是指数据一位一位地顺序传送,其特点是通信线路简单。 1.上电启动开发板 如3.3所示连接一根12V电源线到电源接口位置,连接一根TypeC线到…

web前端:作业三

1.回到顶部案例(固定定位) <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>#container{height: 5000px;border: 1px solid blue;}#back-button{width: 100px;height: 100px;border: 1px solid…

【Ardiuno】实验ESP32单片机搭建简易Web服务器功能(图文)

今天&#xff0c;小飞鱼继续来测试使用ESP32来实现简易的wifi无线web服务器功能。使用Ardiuno平台编辑器输入以下示例代码&#xff1a; #include <WiFi.h> #include <WiFiClient.h> #include <WebServer.h> #include <ESPmDNS.h>const char* ssid &q…

u-boot启动第一阶段 Start.S

从sram的uboot的第一阶段跳转到ddr下的uboot的第二阶段地址&#xff08;不直接从ram中完成uboot是因为ram空间有限&#xff09; 从start.s中构建异常向量表&#xff0c;然后到lowlevel中&#xff0c;然后完成2到7&#xff0c;之后再再ram中做栈重定位动作&#xff0c;建立mmu&a…

一品威客转亏为盈毛利率仍承压,消费者投诉问题引关注

《港湾商业观察》黄懿 5月21日&#xff0c;厦门一品威客网络科技股份有限公司的实质控股股东EPWK HOLDINGS LTD.(下称“一品威客”)在美国证监会(SEC)更新招股书&#xff0c;股票代码EPWK&#xff0c;拟在美国纳斯达克IPO上市。其于2022年8月12日在美国SEC秘密递表&#xff0c…

docker拉取镜像一直在加载中,且会提示error pulling image configuration

1、增加国内镜像配置 #查看文件内容 sudo vim /etc/docker/daemon.json如果没有该文件&#xff0c;则需要在/etc/docker中创建一个daemon.json 文件 创建文件 vim daemon.json#文件中添加以下json {"registry-mirrors":["https://docker.mirrors.ustc.edu.cn/…

速卖通618大促全攻略:卖家如何借助测评策略实现销量飙升?

速卖通618大促是阿里巴巴集团旗下国际电商平台速卖通每年举办的盛大促销活动&#xff0c;其核心目的在于庆祝中国传统节日端午节&#xff0c;同时借此激发全球消费者的购买欲望。此项活动一般在6月18日及其周边日子展开&#xff0c;速卖通届时会推出一系列优惠措施和促销活动&a…

kotlin之foreach跳出循环

1.创建函数跳出循环。 fun breakTest() {(0..10).forEachIndexed { index, i ->Log.d("test start index$index,i$i")if (index > 7) {return}Log.d("test end index$index,i$i")}}2.通过run语句&#xff0c;将会在if判断语句为true的时候跳出run代…

算法01 递推算法及相关问题详解

目录 递推的概念 训练&#xff1a;斐波那契数列 解析 参考代码 训练&#xff1a;上台阶 参考代码 训练&#xff1a;信封 解析 参考代码 递推的概念 递推是一种处理问题的重要方法。 递推通过对问题的分析&#xff0c;找到问题相邻项之间的关系&#xff08;递推式&a…

用ChatGPT 4o画漂亮的燃尽图代码

把代码给ChatGPT&#xff0c;然后他就会帮我生成出来了。 而且图是动态的&#xff0c;可以调整颜色文字之类的内容 # Given data for Sprint 5 Progress data_sprint_5 {User Story: [BEAN-40, BEAN-42, BEAN-41, BEAN-22, BEAN-33, BEAN-44, BEAN-10, BEAN-26, BEAN-37, BEA…