【Selenimu+AutoIT】非input标签上传文件(带参数)

news2024/11/20 9:21:10

工具下载

非input标签上传文件,就需要借助第三方工具,如AutoIT。
AutoIT下载
在这里插入图片描述
安装步骤略

使用

1.打开Auto Window Info

找到这个打开
在这里插入图片描述
拖住红框里面的标到需要定位的地方记录下来
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.打开SciTE Script Editor

打开后,修改为UTF-8,不然输入中文会乱码
在这里插入图片描述
按照刚刚定位获取的信息写,保存文件为.au3,我保存为了upfile.au3
在这里插入图片描述

$fileName=$cmdline[1]
; 等待5秒钟,让上传窗口出现
WinWait("[CLASS:#32770]","",5)
;把输入焦点定位到上传输入文本框中,类型为Edit,编号为1,也就是上面获取到内容
ControlFocus("打开","","Edit1")
;在文件名那里,输入需要上传的文件绝对路径
ControlSetText("打开","","Edit1",$fileName)
;等待上传时间,单位是毫秒 1秒 = 1000 毫秒,文件大的话需要设置长点
Sleep(2000)
;点击"打开"按钮,也就是上传,完成整个上传过程
ControlClick("打开","","Button1")

3.转换文件

接下来把upfile.au3文件转换为.exe文件,打开下面这个
在这里插入图片描述
在这里插入图片描述

4.Python部分代码编写

这里只放了主要代码展示

import os

def upload_file(exe_path, file_path):
    # exe_path 生成的upfile.exe的路径
    # file_path 要上传的文件的路径
    try:
        if os.path.exists(exe_path):
            os.system('%s %s' % (exe_path, file_path))
    except Exception as e:
        raise e
        
if __name__ == '__main__': 
    select_photos = driver.find_element(by=By.XPATH, value='//button[@class="xxx"]')
    #点击了上传文件的按钮
    select_photos.click() 
	exe_path = r"C:\\Users\\Admin\\Desktop\\upfile.exe"
	file_path = r"C:\Users\Admin\Desktop\PRD\15.jpg"
	upload_file(exe_path,file_path)

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

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

相关文章

程序员有必要参加软考吗?

作为程序员,如果一直从事着前线的编程工作,是否会对身体造成负担,难以持续到35岁呢?毕竟在项目赶期时,工作强度很高,而技术也在不断变化,因此很多程序员在30岁前就开始转型。我曾见过很多焦虑自…

观察者模式——对象间的联动

1、简介 1.1、概述 在软件系统中,有些对象之间也存在类似交通信号灯和汽车之间的关系。一个对象的状态或行为的变化将导致其他对象的状态或行为也发生改变,它们之间将产生联动,正所谓“触一而牵百发”。为了更好地描述对象之间存在的这种一…

【C++】初阶 --- 引用(超级详细版!!!)

文章目录 🍪一、引用的概念🍪二、引用的特性🍿1、引用在定义时必须初始化🍿2、一个变量可以有多个引用🍿3、引用一旦引用一个实体,再不能引用其他实体 🍪三、常引用(被const 修饰的引用)&#x…

idea打开传统eclipse项目

打开传统web项目 1.打开后选择项目文件 2.选择项目结构 3.设置jdk版本 4.导入当前项目模块 5.选择eclipse 6. 设置保存目录 7.右键模块,添加spring和web文件 8. 设置web目录之类的,并且创建打包工具 9.如果有本地lib,添加为库 最后点击应用&…

【linux】Linux桌面应用程序快捷方式

在linux系统里,很多应用程序虽然有对应的版本,但是下载了之后发现打开方式并不友好,比如,今天下载了DataGrip,打开文件夹才发现它里面有这些: 红框内的脚本是其正确的打开方式。每次你都要执行&#xff1a…

一篇文了解SHA2代码签名

在当今数字时代,各种网络隐私安全威胁层出不穷,对此,我们也采取了很多安全措施。SHA2代码签名作为一种非常重要的安全措施,它有助于确保软件代码和文件的完整性和真实性。那么你知道SHA2代码签名是什么?它的原理是什么…

天线辐射机制

电磁场如何从源中产生并最终脱离天线辐射到自由空间中去的呢?让我们首先来研究一下一些基本的辐射源。 1、单线Single Wire 导线是一种电荷运动产生电流特性的材料,假设用qv(库仑/m3)表示的一个电体积电荷密度均匀分布在一个横截…

云安全攻防(五)之 容器基础设施所面临的风险

容器基础设施所面临的风险 容器基础设施面临的风险 我们从容器镜像、活动容器、容器网络、容器管理程序接口、宿主机操作和软件漏洞六个方面来分析容器基础设施可能面临的风险 容器镜像存在的风险 所有容器都来自容器镜像。与虚拟机镜像不同的是,容器镜像是一个不…

基于埋点日志数据的网络流量统计 - PV、UV

水善利万物而不争,处众人之所恶,故几于道💦 文章目录 一、 网站总流量数统计 - PV 1. 需求分析 2. 代码实现 方式一 方式二 方式三:使用process算子实现 方式四:使用process算子实现 二、网站独立访客数统计 - UV 1. …

新闻稿代写软件有哪些?聪明灵犀工具助你撰写合格新闻稿

新闻稿代写软件有哪些?新闻稿是一种重要的宣传工具,但是撰写优秀的新闻稿需要一定的写作技巧和经验。幸运的是,现在有许多新闻稿代写软件可供使用,这些工具可以帮助你撰写出更优质的新闻稿。本文将介绍一些常用的新闻稿代写软件以…

【性能调优-实例演示】CPU爆了怎么定位问题--》调试指令性能分析工具

性能调优 定位生产性能问题 生产环境,CPU Memory 告警 top:找出占CPU比较高的进程${pid}(内存增长,CPU居高不下)top -Hp ${pid}:显示所有线程的CPU占比,观察进程中的线程,找出哪个…

Vol的学习

首先学习基础用法 1.查看系统基本信息 vol.py -f 路径 imageinfo 2.查看进程命令行 vol.py -f 路径 --profile系统版本 cmdline vol.py -f 路径 --profile版本 cmdscan 3.查看进程信息 vol.py -f 路径 --profile系统 pslist 通过树的方式返回 vol.py -f 路径 --profile系统…

淘宝资源采集(从零开始学习淘宝数据爬取)

1. 为什么要进行淘宝数据爬取? 淘宝数据爬取是指通过自动化程序从淘宝网站上获取数据的过程。这些数据可以包括商品信息、销售数据、评论等等。淘宝数据爬取可以帮助您了解市场趋势、优化您的产品选择以及提高销售额。 淘宝作为全球的电商平台,每天都有…

从初学者到专家:Java 数据类型和变量的完整指南

目录 一、字面常量 1.1什么常量? 1.2常见的六种常量类型 二、数据类型 2.1什么是数据类型? 2.2基本数据类型: 2.3引用数据类型 三、变量 3.1什么是变量? 3.2变量的命名规则 3.3变量的作用域 3.4变量的被final修饰 四…

C++ 外部变量和外部函数

1.外部变量 如果一个变量除了在定义它的源文件中可以使用外,还能被其他文件使用,那么就称这个变量为外部变量。命名空间作用域中定义的变量,默认情况下都是外部变量,但在其他文件中如果需要使用这一变量,需要用extern…

CAS - 原理简介

CAS是JDK提供的非阻塞原子操作,它通过硬件保证了比较-更新的原子性。它是非阻塞的且自身具有原子性,也就是说CAS效率高、可靠。CAS是一条CPU的原子指令(cmpxchg指令),不会造成所谓的数据不一致问题,Unsafe类提供的CAS方法&#xf…

【内网穿透】内网穿透应用场景

伴随着科学技术的进步,我们身边出现了越来越多的电子设备,特别是移动电子设备的普及,给我们的生活带来极大的便利,而软件技术的发展,更为这些软件设备带来更多应用的可能。虽然移动设备覆盖了了我们生活的绝大部分场景…

Mybatis引出的一系列问题-JDBC 的探究

1 引入对JDBC的理解-1 一般来说,Java应用程序访问数据库的过程是: 装载数据库驱动程序;通过jdbc建立数据库连接;访问数据库,执行sql语句;断开数据库连接。 Public void FindAllUsers(){//1、装载sqlserve…

面试热题(接雨水问题)

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 我们看到题的第一步,永远是对入参进行判断 public int trap(int[] height) {if (height null) {return 0;}...} 但是我们想想看,接…

uniapp微信小程序底部弹窗自定义组件

基础弹窗效果组件 <template><view><viewclass"tui-actionsheet-class tui-actionsheet":class"[show ? tui-actionsheet-show : ]"><view class"regional-selection">底部弹窗</view></view><!-- 遮罩…